Подтвердить что ты не робот

Лучший способ найти источник предупреждения: пустая строка передана getElementById()

Предупреждение: пустая строка передается getElementById().
Исходный файл: chrome://browser/content/browser.xul
Линия: 0

Несколько дней назад я начал получать вышеуказанное сообщение при разработке моего сайта. Вещи работают так, как должны (или, по крайней мере, я думаю, что они есть), но я хочу узнать, откуда это происходит. Я использую jQuery, поэтому не используйте getElementById() напрямую. Кроме того, у меня есть Firebug и расширение веб-разработчика для Firefox.

Я мог бы с трудом поместить код, чтобы проверить пустую строку, присваиваемую jQuery, или, возможно, заглянуть в jQuery, но мои навыки минимальны, поэтому я спрашиваю здесь, есть ли у кого-то хорошая идея для быстрого поиска источник предупреждающих сообщений.

4b9b3361

Ответ 1

Source File: chrome://browser/content/browser.xul

Это означает, что ошибка заключается в расширении Firefox, а не в коде.

Ответ 2

Если вы запрашиваете селектор '#' - убедитесь, что селектор уникален (как и должно быть), или вы получите эту ошибку в ff

Ответ 3

В моем случае это было вызвано тем, что Firefox выполняет проверки HTML5 на поля ввода в моей форме. Когда свойство "требуется" было удалено из элементов формы, все, казалось, снова работало нормально.

Это было связано с используемой мной инфраструктурой MVC, которая генерирует эти свойства на основе правил проверки модели, которые требуют, чтобы поле было непустым.

Ответ 4

Этот ответ был очень полезен для меня, чтобы выяснить, почему это происходит, поэтому я решил поделиться.

Я поместил следующий код ВНЕ document.ready и получил эту ошибку.

// Enable Line Items ONLY AFTER general info is filled out!
$( "#client_estimate_continue_next" ).click(function(e) {
//e.preventDefault();
console.log(this.id + ' click event fired.');

// DO SOMETHING...

});

Мне удалось исправить ошибку, просто поместив ее ВНУТРИ document.ready

Дополнительная информация:

Я получил ошибку, но в моем случае она исходила из моего собственного скрипта в соответствии с FireFox.

Я полагаю, что получил ошибку, потому что сделал ссылку на идентификатор элемента, который еще не был полностью обработан, например. НЕ готов.

Предупреждение: пустая строка передана getElementById().

Ответ 5

Получал это предупреждение в Firefox.

Я только что наткнулся на это предупреждение и обнаружил, что были метки для полей ввода, но метки для атрибута не были установлены/пусты, поэтому простое заполнение атрибута for устранило эту проблему для меня.

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

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