javascript-定位警告源的最佳方法:将空字符串传递给getElementById()

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

几天前,在开发网站时,我开始收到上述消息。 事情正在按其应有的方式工作(或者至少我认为是这样),但我想找出问题的根源。 我使用jQuery,所以不要直接使用getElementById()。 另外,我还有Firebug和Firefox运行的Web开发人员扩展。

我可以费力地输入代码来检查是否为jQuery选择提供了一个空字符串,或者可以查看jQuery本身,但是我的技能很低,所以我在这里问是否有人愿意迅速找到jQuery的源代码 警告消息。

Terry asked 2019-11-17T18:09:50Z
5个解决方案
24 votes
Source File: chrome://browser/content/browser.xul

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

lanzz answered 2019-11-17T18:10:12Z
7 votes

如果要通过“#”选择器进行查询,请确保选择器是唯一的(应是唯一的),否则将在ff中出现此错误

user1898553 answered 2019-11-17T18:10:35Z
2 votes

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

这是我使用的MVC框架带来的,该框架基于需要字段为非空的模型验证规则来生成这些属性。

DoctorFox answered 2019-11-17T18:11:06Z
0 votes

这个答案对我找到真正的原因非常有帮助,所以我决定分享一下。

我将以下代码放置在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...

});

我能够通过简单地将其放置在INSIDE document.ready中来修复该错误

附加信息:

我得到了错误,但就我而言,它来自FireFox给出的我自己的脚本。

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

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

ASPiRE answered 2019-11-17T18:12:04Z
0 votes

在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="" />
MattyGT answered 2019-11-17T18:12:34Z
translate from https://stackoverflow.com:/questions/10790435/best-way-to-locate-source-of-warning-empty-string-passed-to-getelementbyid