2013-08-27 31 views
2

我正在爲Firefox編寫一個exntension。基本上通過使用getElementsByClassName,我正在尋找一個特定的類,如果有任何命中,我重定向頁面使用:gBrowser.loadURI 問題是,如果我打開一個鏈接鼠標中鍵,打開鏈接背景選項卡。因此,如果在該頁面中有上述類別標準的任何命中,則活動選項卡將被重定向而不是空白,這是錯誤的行爲。 所以基本上我想使用一個類似的loadURI函數,但對於特定的選項卡,而不是當前的活動選項卡。 而不是loadURI我也可以使用window.location =「http://www.google.com/」。但不知何故,當我使用window.location時,ff窗口中的每個按鈕都消失了,就好像全視圖一樣。 你有任何想法重定向非活動選項卡?重定向一個特定的標籤Firefox添加

回答

3

假設你正在使用這樣的代碼(好像是的,無論如何請提供您的代碼以供將來參考):

function pageLoad(event) { 
    var doc = event.originalTarget; 
    if (/* doc matches class */) { 
    gBrowser.loadURI(newURI, ...); 
    } 
} 

addEventListener("load", function() { 
    gBrowser.addEventListener("load", pageLoad, true); 
}, false); 

更改聽者是這樣的:

function pageLoad(event) { 
    var doc = event.originalTarget; 
    if (/* doc matches class */) { 
    gBrowser.getBrowserForDocument(doc).loadURI(newURI, ...); 
    } 
} 

當然,最好用一點錯誤處理。

參見<tabbrowser> aka. gBrowserbrowser(即一個getBrowserForDocument()返回)。

(我是從內存中完成的;可能需要撥弄一下)

+0

非常感謝。奇蹟般有效! – markAnthopins