【发布时间】:2013-04-06 22:05:17
【问题描述】:
我正在尝试将 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)" 的工具栏按钮时,此函数可以很好地将脚本附加到当前页面,但我不知道如何访问新打开的选项卡中的窗口,或者如果我应该从方程式中删除窗口并以另一种方式访问文档。
【问题讨论】:
-
var newtabwindow = event.target;不起作用吗? -
从您的描述看来,Mozilla 的Add-on SDK 似乎更适合该工作。您可以使用 page-mod 将内容脚本附加到 URL 匹配模式的任何网页,或使用 tabs 模块。
标签: javascript firefox-addon xul