我试图将Greasemonky脚本转换为Firefox的扩展,我试图让我的扩展程序自动将一个简单的脚本附加到任何网页时,打开一个新的选项卡。我正在从Greasemonkey转换脚本,因为我想利用高级首选项和菜单选项。如何访问新打开的选项卡的窗口对象? [在Firefox的扩展]
我访问使用的标签是:
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;'不工作? – Sukima 2013-04-06 23:02:27
从你的描述看来,Mozilla的[附加SDK](https://addons.mozilla.org/en-US/developers/docs/sdk/latest/)更适合这项工作。您可以使用[page-mod](https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/page-mod.html)将内容脚本附加到任何网页URL匹配模式,或使用[tabs](https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/tabs.html)模块。 – ZER0 2013-04-07 01:07:23