簡體   English   中英

如何訪問新打開的選項卡的窗口對象? [在Firefox擴展程序中]

[英]How can I access a newly-opened tab's window object? [in a firefox extension]

我正在嘗試將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)”附加到工具欄按鈕時,此功能可以很好地將腳本附加到當前頁面,但是我不知道如何訪問新打開的選項卡中的窗口,或者是否應該從等式中切出窗口並以另一種方式訪問​​文檔。

您正在尋找contentWindow ,它是browser元素的屬性。

給定一個tab ,調用gBrowser.getBrowserForTab獲取與該tab關聯的browser元素。 然后訪問browser元素的contentDocumentcontentWindow屬性(它們等效於您應該已經熟悉的documentwindow對象)。

另外,如果我沒記錯的話,除了監聽tab事件之外,您還需要監聽contentWindow"load"事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM