59 votes

Meilleur moyen de localiser la source d'un avertissement : Chaîne vide passée à getElementById()

Avertissement : Une chaîne vide est passée à getElementById().
Fichier source : chrome://browser/content/browser.xul
Ligne : 0

Il y a quelques jours, j'ai commencé à recevoir le message ci-dessus alors que je développais mon site. Les choses fonctionnent comme elles le devraient (ou du moins je le pense), mais je veux savoir d'où cela vient. J'utilise jQuery et je n'utilise donc pas getElementById() directement. De plus, je dispose de Firebug et de l'extension Web Developer pour Firefox.

Je pourrais laborieusement mettre du code pour vérifier si une chaîne vide est donnée à une sélection jQuery ou peut-être regarder dans jQuery lui-même, mais mes compétences sont minimales, donc je demande ici si quelqu'un a une bonne idée pour localiser rapidement la source des messages d'avertissement.

27voto

lanzz Points 19475
Source File: chrome://browser/content/browser.xul

Cela signifie que l'erreur se trouve dans une extension Firefox, et non dans votre code.

0 votes

J'aime les hommes :) Vous êtes un sauveur de vie. J'étais en train de devenir fou en utilisant des dropdowns dépendants dans Yii2 et j'ai mémorisé mes lignes de code mais j'obtenais cette erreur stupide. Maintenant, je viens de vérifier dans IE et Chrome, et mon code fonctionne comme un charme.

0 votes

Une chose que j'ai remarquée, ma copie locale fonctionne bien mais la version déployée a un problème, donc ce n'est certainement pas une erreur de navigateur :(

0 votes

en effet, vous êtes un sauveur de vies :)

13voto

MattyGT Points 121

Je recevais cet avertissement dans Firefox.

Je viens de tomber sur cet avertissement et j'ai constaté qu'il y avait des étiquettes pour les champs de saisie mais que l'attribut "labels for" n'était pas défini/vide. Le fait de compléter l'attribut "for" a réglé le problème pour moi.

// Label's for attribute not set which caused the warning in FF

e.g. <label for=''>Text</label><input type="text" name="text" id="text" value="" />

0 votes

Désolé pour ça. Ajout d'un exemple.

0 votes

Juste pour clarifier : pour le réparer, vous avez besoin d'une pour valeur : par exemple <label for='text'> (correspondant à l'identifiant d'entrée).

8voto

user1898553 Points 36

Si vous effectuez des requêtes au moyen du sélecteur '#', assurez-vous que le sélecteur est unique (comme il devrait l'être), sinon vous obtiendrez cette erreur dans ff.

2voto

DoctorFox Points 61

Dans mon cas, cela a été causé par Firefox qui a effectué des contrôles HTML5 sur les champs de saisie de mon formulaire. Une fois que la propriété "required" a été supprimée des éléments du formulaire, tout semble fonctionner à nouveau correctement.

Ceci est dû au cadre MVC que j'utilise et qui génère ces propriétés sur la base des règles de validation du modèle qui exigent qu'un champ ne soit pas vide.

1voto

erwin Points 630

https://github.com/twbs/bootstrap/pull/5223

Correction : ne pas faire de requête avec le sélecteur '#'.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X