【发布时间】:2011-08-16 16:49:05
【问题描述】:
我正在尝试编写一个将元素添加到加载页面的 Firefox 扩展。到目前为止,我通过
获得了文档的根元素var domBody = content.document.getElementsByTagName("BODY").item(0);
并通过
创建新元素var newDiv = content.document.createElement("div");
实际上,一切都运行良好。但是当我添加一个带有 onclick 属性的按钮时,问题就来了。当按钮正确显示时,我得到一个错误。我已经问过here,并且使用 document.createElement() 的答案(没有内容)有效。
但如果我删除“内容”。到处,真正的麻烦开始了。首先,domBody 为空/未定义,无论我如何尝试访问它,例如document.body (实际上我在文档完全加载之后添加了所有元素。至少我是这么认为的)。其次,所有其他元素看起来都不同。似乎不再考虑样式信息,例如 element.style.width="300px"。
简而言之,使用“content.document”,一切看起来都不错,但 button.onclick 会引发错误。只有“文档”按钮有效,但元素不再正确显示。有没有人看到解决方案。
【问题讨论】:
-
有一种更简单的访问正文的方法。文档.body
-
我试过 'document.body' 但它是未定义的,虽然页面是 - 至少应该 - 完全加载
-
点击按钮时抛出的错误是什么?
-
@Greg:
getElementsByTagName返回NodeList。您可以使用数组表示法,但.item()也可以。
标签: javascript dom firefox-addon