【发布时间】:2014-10-18 09:47:21
【问题描述】:
我正在开发一个 Firefox 扩展。在 Google Chrome 中,我通过以下方式获取元素:var element = $('div[class^="ii gt"]')
它返回一个对象。然后我使用element[0].children[0] 获取第一个元素的第一个子元素,它工作正常。
但在 Firefox 中,使用上述代码在同一 HTML 页面上返回一个对象,但该对象不包含任何子元素。我还检查了长度为 0。此外,我尝试了 $("*[class^='ii gt']") and $("*[class*='ii gt']"),它们都返回 0 长度。
有什么问题?怎么解决?
注意:<div> 的类包含动态前缀名称,例如“ii gt aaa”和“ii gt bbb”。
更新:我只是尝试使用document.getElementsByClassName('ii gt m1485f8bb9d512968 adP adO')[0].innerHTML 来使用整个类名。它不起作用。但是使用content.document.getElementsByClassName('ii gt m1485f8bb9d512968 adP adO')[0].innerHTML 它起作用了。那么问题是什么?有人知道吗?
【问题讨论】:
-
你能给我们看看html标记吗?它似乎在 Firefox 中工作:jsfiddle.net/3o287520
-
你的 Firefox 代码是在什么上下文中执行的?
-
@paa :Gmail 收件箱邮件上下文。
-
通过 cintext 我的意思是如果代码是内容脚本的一部分,或者
main.js或其他东西。 -
从更新来看,您的扩展是 XUL 扩展。您的代码在 ChromeWindow 的内容中执行,这就是为什么您必须使用
content来访问HTMLWindow。
标签: javascript jquery firefox google-chrome-extension firefox-addon