我試圖將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