Javascript 如何访问新打开的选项卡';什么是窗口对象?[在firefox扩展中]
我正在尝试将Greasemonky脚本转换为Firefox的扩展,并尝试在打开新选项卡时使扩展自动将简单脚本附加到任何网页。我正在从Greasemonkey转换脚本,因为我想利用高级首选项和菜单选项 我使用以下命令访问选项卡:Javascript 如何访问新打开的选项卡';什么是窗口对象?[在firefox扩展中],javascript,firefox-addon,xul,Javascript,Firefox Addon,Xul,我正在尝试将Greasemonky脚本转换为Firefox的扩展,并尝试在打开新选项卡时使扩展自动将简单脚本附加到任何网页。我正在从Greasemonkey转换脚本,因为我想利用高级首选项和菜单选项 我使用以下命令访问选项卡: var container = gBrowser.tabContainer; container.addEventListener("TabOpen", tabAdded, false); function tabAdded(event) { var newtabwin
var container = gBrowser.tabContainer;
container.addEventListener("TabOpen", tabAdded, false);
function tabAdded(event) {
var newtabwindow = event.target.____ //I don't know what goes here
//attach script to newtabwindow
}
我的目标是在使用此函数加载后,将脚本附加到新选项卡中的文档:
function scriptrunner(targetwindow) {
var myScript = targetwindow.content.document.createElement('script');
myScript.type = 'text/javascript';
myScript.setAttribute('src','chrome://addonname/content/addonscript.js');
targetwindow.content.document.getElementsByTagName('head')[0].appendChild(myScript);
}
当使用oncommand=“scriptrunner(window)”将脚本附加到工具栏按钮时,此函数可以很好地将脚本附加到当前页面,但我不知道如何在新打开的选项卡中访问该窗口,或者我应该从等式中剪切窗口,以另一种方式访问文档。您正在查找
contentWindow
,它是浏览器
元素的属性
给定选项卡
,调用以获取与选项卡
关联的浏览器
元素。然后访问元素的contentDocument
或contentWindow
属性(这些属性相当于您应该已经熟悉的document
和window
对象)
此外——如果我没有弄错的话——除了收听
选项卡的事件外,您还需要收听内容窗口的加载事件代码>不工作?从你的描述来看,Mozilla的更适合这份工作。您可以使用将内容脚本附加到URL与模式匹配的任何网页,或者使用模块。我发现示例中删除了侦听TabOpen事件的需要,是的,我必须为窗口使用加载事件侦听器。