0
var extension= { 
check_domain : function(domain){ 
     //checking the domain name where event should occur........ 
}, 
on_load: function(e) { 
    var doc_event = e.originalTarget; 
extension.check_domain(doc_event.location.href); 
}, 
init: function(e) { 
if(gBrowser){ 
    gBrowser.addEventListener("DOMContentLoaded", this.on_load, false); 
    } 
} } window.addEventListener( "load", function(e) { extension.init(); }, false); 

點擊新標籤或鏈接時,ON_LOAD函數被調用打開從活動標籤鏈接到新的選項卡。但我的問題是,如果我們打開從活動標籤到新標籤的新鏈接,則新標籤中發生的事件發生在活動標籤中,而新標籤加載在背景中。而且,如果我們正在打開鏈接的數量,因爲所有事件都發生在活動選項卡中,而不是在新選項卡中。事件發生在相同的標籤,而在火狐狸extenion

我想要的是該事件應該發生在新選項卡中,即使它在後臺運行.. 如何識別新選項卡並使事件發生在新選項卡中...(可選=> )沒有使新標籤成爲活動標籤。

回答

1

您沒有解釋如何檢查事件發生在哪個選項卡上,我懷疑您只是查看當前活動的選項卡 - 當然,如果在背景選項卡中加載了某些內容,它將不起作用。而應該看e.target(即加載的文件),並檢查其對應的選項卡有:

on_load: function(e) { 
    var doc = e.target; 
    var browser = gBrowser.getBrowserForDocument(doc); 
    ... 
}, 

這將給你在文檔加載的標籤的<browser>元素(也可能是null如果文檔加載不是頂級文件)。

+0

感謝,瀏覽器元素使我的腳本更容易,但我的問題沒有解決.......應該在新標籤中發生的事件仍然在舊標籤中發生.......請幫忙.. – KAS