60

警告:传递给 getElementById() 的空字符串。
源文件:chrome://browser/content/browser.xul
行:0

几天前,我在开发我的网站时开始收到上述消息。事情正在按他们应该的方式工作(或者至少我认为是这样),但我想知道这是从哪里来的。我使用 jQuery,所以不要getElementById()直接使用。另外,我有 Firebug 和运行 Firefox 的 Web Developer 扩展。

我可以费力地输入代码来检查给 jQuery 选择的空字符串,或者查看 jQuery 本身,但我的技能很少,所以我在这里问是否有人有一个快速定位来源的好主意警告信息。

4

5 回答 5

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

这意味着错误在 Firefox 扩展中,而不是在您的代码中。

于 2012-05-28T21:13:24.883 回答
14

在 Firefox 中收到此警告。

我刚刚遇到此警告,发现输入字段有标签,但属性标签未设置/为空,因此只需完成 for 属性即可为我解决此问题。

// 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="" />
于 2019-07-29T09:25:19.233 回答
8

如果您通过 '#' 选择器进行查询 - 确保选择器是唯一的(应该是唯一的),否则您最终会在 ff 中出现此错误

于 2012-12-27T19:35:03.560 回答
2

就我而言,这是由 Firefox 对我的表单上的输入字段执行 HTML5 检查引起的。一旦从表单元素中删除了“必需”属性,一切似乎又可以正常工作了。

这是我使用的 MVC 框架带来的东西,它根据需要字段非空的模型验证规则生成这些属性。

于 2013-08-11T01:18:53.950 回答
0

这个答案对我找到它发生的原因非常有帮助,所以我决定分享。

我已将以下代码放在外面 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。

我相信我得到了错误,因为我引用了一个尚未完全呈现的元素的 id,例如。还没准备好

警告:传递给 getElementById() 的空字符串。

于 2018-03-13T00:34:51.567 回答