Javascript 主体未定义
我有以下javascript代码(firefox扩展) 当我想在另一个函数中使用Javascript 主体未定义,javascript,dom,firefox-addon,Javascript,Dom,Firefox Addon,我有以下javascript代码(firefox扩展) 当我想在另一个函数中使用body变量时错误控制台写入body未定义。我知道并非所有firefox页面都定义了body标记,但即使我加载了 你知道怎么了吗 谢谢您需要使用document.body来访问文档的body标记您需要使用document.body来访问文档的body标记如果body未定义,我会假设没有为其分配任何内容,可能是因为!e、 originalTarget.defaultView.frameElement表达式的计算结果为f
body
变量时错误控制台
写入body未定义
。我知道并非所有firefox页面都定义了body
标记,但即使我加载了
你知道怎么了吗
谢谢您需要使用document.body来访问文档的body标记您需要使用document.body来访问文档的body标记如果
body
未定义,我会假设没有为其分配任何内容,可能是因为!e、 originalTarget.defaultView.frameElement
表达式的计算结果为false
。这个条件是什么?如果body
没有定义,我会假设没有为它赋值,可能是因为!e、 originalTarget.defaultView.frameElement
表达式的计算结果为false
。这是什么条件?Valster注意,我想更改DOMContentLoaded
事件的body变量。当您打开更多选项卡时,这将是一个问题。请注意,我想更改DOMContentLoaded
事件的body变量。当你打开更多选项卡时,这将是一个问题。这只是一个输入错误还是你在var Test
之后丢失了一个等号?@duri谢谢,这只是一个输入错误,而不是在程序中。这只是一个输入错误还是在var Test
之后丢失了一个等号?@duri谢谢,这只是一个输入错误,而不是在程序中。它本来没有这种情况。我认为当我添加此条件时,文档没有body标签的可能性较小。它最初没有此条件。我认为,当我添加此条件时,文档没有body标签的可能性较小。
var body;
var Test = {
initializeBody: function(e) {
if (!e.originalTarget.defaultView.frameElement) {
body = e.target.ownerDocument.getElementsByTagName('body')[0].cloneNode(true);
}
}
}
window.addEventListener("DOMContentLoaded", function(e) { Test.initializeBody(e); }, false);