7

我正在尝试将 Greasemonky 脚本转换为 Firefox 的扩展程序,并且我正在尝试使我的扩展程序在打开新选项卡时自动将简单脚本附加到任何网页。我正在从 Greasemonkey 转换脚本,因为我想利用高级首选项和菜单选项。

我使用这个访问选项卡:

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)" 的工具栏按钮时,此函数可以很好地将脚本附加到当前页面,但我不知道如何访问新打开的选项卡中的窗口,或者我是否应该从等式中切出窗口并以另一种方式访问​​文档。

4

1 回答 1

2

您正在寻找contentWindow,这是browser元素的一个属性。

给定一个tab, 调用gBrowser.getBrowserForTab以获取browsertab. 然后访问元素的contentDocumentorcontentWindow属性browser(这些等同于您应该已经熟悉的documentand对象)。window

"load"另外——如果我没记错的话——contentWindow除了监听tab.

于 2013-04-10T23:35:32.830 回答