在Firefox for Android插件中访问DOM

在Firefox for Android插件中访问DOM,android,firefox-addon,Android,Firefox Addon,这听起来像是一个非常简单的问题,但我一直在浏览“FirefoxforAndroid”的MDN文档,似乎无法理解 我正在尝试构建一个简单的“FirefoxforAndroid”插件,它只是在访问的页面中插入一个脚本标签。我尝试了以下代码(省去了以下代码): 函数装入窗口(窗口){ 如果(!窗口) 返回; menuId=window.NativeWindow.menu.add(“插入”),null,function(){ 插入脚本(窗口); }); } 函数插入脚本(窗口){ //这些属性都不存在:

这听起来像是一个非常简单的问题,但我一直在浏览“FirefoxforAndroid”的MDN文档,似乎无法理解

我正在尝试构建一个简单的“FirefoxforAndroid”插件,它只是在访问的页面中插入一个脚本标签。我尝试了以下代码(省去了以下代码):

函数装入窗口(窗口){
如果(!窗口)
返回;
menuId=window.NativeWindow.menu.add(“插入”),null,function(){
插入脚本(窗口);
});
}
函数插入脚本(窗口){
//这些属性都不存在:window.document.body.innerHTML、window.body.innerHTML
//window.document.body.innerHTML=“此页面已被吃掉”;
//var contentScriptString='document.body.innerHTML=“此页面已被吃掉”;'
//抛出错误“ReferenceError:未定义要求”
//变量选项卡=需要(“sdk/选项卡”);
//tabs.activeTab.attach({
//contentScript:contentScriptString
// });
//抛出错误“TypeError:attach不是函数”
//window.BrowserApp.selectedTab.attach({
//contentScript:contentScriptString
// });
}
函数unloadFromWindow(窗口){
如果(!窗口)
返回;
window.NativeWindow.menu.remove(menuId);
}
loadIntoWindow函数被正确调用,因为“插入”选项被添加为菜单选项,而此选项在点击时又正确调用insertScript选项

但是,我不知道如何访问窗口的DOM以插入脚本。我尝试了页面上提到的选项,关于和

谢谢


威廉看起来我能回答我自己的问题。查看之后,我发现以下代码可以访问当前页面的DOM:

var contentWindow = window.BrowserApp.selectedBrowser.contentWindow;
var document = contentWindow.document;

document.body.innerHTML = "<h1>this page has been eaten</h1>";
var contentWindow=window.BrowserApp.selectedBrowser.contentWindow;
var document=contentWindow.document;
document.body.innerHTML=“此页面已被吃掉”;

非常感谢您的分享!我现在也开始使用android插件了,你有时间可以聊天吗?我试着做一些简单的事情,比如想办法让导航栏一直保持不变。遗憾的是,我只做了一个插件&我没有任何其他的经验。。如果你愿意,我可以与你分享代码。是的,请@Will那会很棒,你能上传到github存储库吗?您的方法e10s(电解)安全吗?
var contentWindow = window.BrowserApp.selectedBrowser.contentWindow;
var document = contentWindow.document;

document.body.innerHTML = "<h1>this page has been eaten</h1>";