Comment savoir si un navigateur a rempli automatiquement une zone de texte ? En particulier avec les champs de nom d'utilisateur et de mot de passe qui se remplissent automatiquement au moment du chargement de la page.
Ma première question est la suivante : quand cela se produit-il dans la séquence de chargement de la page ? Est-ce avant ou après document.ready ?
Deuxièmement, comment puis-je utiliser la logique pour savoir si cela s'est produit ? Ce n'est pas que je veuille l'empêcher de se produire, je veux juste m'accrocher à l'événement. De préférence, quelque chose comme ceci :
if (autoFilled == true) {
} else {
}
Si possible, j'aimerais voir un jsfiddle montrant votre réponse.
Duplicatas possibles
Événement DOM pour le remplissage automatique du mot de passe dans le navigateur ?
Autofill du navigateur et événements déclenchés par Javascript
--Ces deux questions n'expliquent pas vraiment quels événements sont déclenchés, elles se contentent de revérifier continuellement la zone de texte (ce qui n'est pas bon pour les performances !).
1 votes
La vérification prend quelques microsecondes alors que l'intervalle serait de lancer la vérification toutes les 100 millisecondes environ... comment cela va-t-il affecter les performances ? S'il existait un événement déclenché par le navigateur, je suis sûr qu'ils l'auraient utilisé.
0 votes
Je vois ce que vous voulez dire, mais cela dépend de la première partie de ma question, à savoir si JavaScript est même conscient qu'un changement vient d'avoir lieu (par exemple, avant document.ready).
1 votes
LA MEILLEURE solution pour Chrome / WebKit est d'utiliser le sélecteur DOM : document.querySelectorAll('input:-webkit-autofill') ; après un court délai setTimeout(... code ici... 250) ;
0 votes
En fait, je veux que l'utilisateur se connecte automatiquement s'il est rempli automatiquement, c'est très ennuyeux de se reconnecter quand il se déconnecte automatiquement.
0 votes
@ChrisN Votre commentaire est ce qui m'a permis de trouver une solution (simple). Je ne le considère pas comme une réponse, cependant ! Publiez-le en tant que tel et envoyez-moi un message pour que je puisse l'upvoter en remerciement.
0 votes
Pourquoi auriez-vous besoin de savoir si le remplissage automatique a été utilisé ? Le remplissage automatique doit être transparent pour le site Web. Les sites Web ne doivent donc pas se comporter différemment si le remplissage automatique est utilisé. La réponse doit être la même que si l'utilisateur avait saisi lui-même les informations.