2010-12-09 25 views
4

J'ai un client qui voulait que son interface utilisateur affiche des noms de champs dans un formulaire (le champ de nom d'utilisateur dit "nom d'utilisateur", le champ de mot de passe dit "mot de passe", etc.). Puisque le formulaire utilise un mot de passe de type <input> (qui affiche normalement des points), j'ai dû simuler le remplissage de données dans les champs en les superposant avec des divs qui contenaient le verbiage.Quand le remplissage automatique de Chrome dans une page Web est-il effectué?

Pour reconnaître autofill, j'ai écrit du Javascript qui vérifie si le champ est rempli et agit en conséquence (soit en masquant soit en affichant le verbiage). Pour autant que je sache, Chrome est le seul navigateur qui se fout. Il ne semble pas se soucier s'il y a des données de remplissage automatique ou non, et le verbiage superpose toujours les données de remplissage automatique (ostensiblement parce que la fonctionnalité hide n'est pas déclenchée).

Ma longue question est: Quand est-ce que Chrome remplit automatiquement les données dans le processus de rendu? Est-ce que ça attend que Javascript soit fini? Est-il possible pour moi de vérifier si les données de remplissage automatique occupent un champ dans Chrome?

+0

Si vous mettez un 'setTimeout' long sur votre fonction de masquage de verbiage, est-il correctement traité sur Chrome? C'est-à-dire, essayez d'enlever l'ordre de chargement de document de l'équation pour déterminer si c'est vraiment ce qui jette le chrome outre de. – jball

Répondre

1

j'ai décidé d'attacher un auditeur à un événement qui a activé le modal qui contenait les formes. Inutile de dire que c'est une solution qui ne fonctionnerait que dans ma situation particulière. Je ne considère pas cela comme une réponse, mais je l'affiche ici pour éventuellement donner aux autres à la recherche d'une solution de contournement.

4

Une solution de contournement simple serait d'utiliser l'attribut placeholder de HTML5, pris en charge par WebKit et Firefox. Cela prendrait un peu plus de détection de fonctionnalités, mais vous n'auriez qu'à implémenter la superposition de simulation dans des environnements autres que Chrome.

Dive Into HTML5 explanation

+0

Bien que n'étant pas largement pris en charge, bien que cette fonctionnalité est l'un des plus impressionnants que je recherche dans HTML5 – dclowd9901

+0

je. avait. non. idée! BEGONE étiquettes lourdes avec javascript focus et fonctions de flou !!!!!!!!!!! – willdanceforfun