Javascript 主体未定义

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

我有以下javascript代码(firefox扩展)

当我想在另一个函数中使用
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);