我是Firefox的扩展开发新手,特别是移动版本,我正面临着让我疯狂的问题。
我需要提取具有特定标记名称的元素,例如<iframe>
或<p>
或<script>
。当然我考虑使用getElementsByTagName()
,但它对我不起作用。此外,我不知道我应该把它放在哪里,因为当我将它链接到门架按钮中的功能时,它不起作用。如果我更改为启动函数,它将显示警报窗口,但结果为空(null)。
我真的被困住了,我需要你的帮助。这里是我正在使用的代码行:
doc=getBrowser().selectedTab.linkedBrowser.contentDocument;
frames=doc.getElementsByTagName("script");
当我按下门铃中的按钮时,我只是在警报窗口和吐司中显示提取元素数组的长度:
label: "JavaScript",// the button label in the doorhanger
callback: function() {
Services.prompt.alert(null,"the iframes ","Frames Tag shown "+frames.length);// the alert window
aWindow.NativeWindow.toast.show("Frames Tag shown "+frames.length, "long");//the toast
}
答案 0 :(得分:0)
桌面和移动扩展之间存在很多差异。首先,后者不提供全局getBrowser()或gBrowser。相反,您必须使用BrowserApp object。
答案 1 :(得分:0)
非常感谢大家的帮助,我找到了解决方案:此代码绑定到显示门架的菜单按钮:
init();// initialization of the vriables otherwise it won't work
var tab = window.BrowserApp.selectedTab;
doc = tab.window.document;// getting the DOM
iframes=doc.getElementsByTagName("iframe");// the the iframes