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関数が呼び出されます。しかし、私の問題は、アクティブなタブから新しいタブに新しいリンクを開くと、新しいタブで起こっていると思われるイベントがアクティブなタブで発生し、新しいタブがバックグラウンドで読み込まれるということです。すべてのイベントが新しいタブにないアクティブなタブで発生するようなリンクの数を開いています。同じタブ内でイベントが発生し、firefoxエクステンションのアクティブなタブから新しいタブへのリンクを開く中

バックグラウンドで実行されても、新しいタブでイベントが発生する必要があります。 新しいタブを特定し、新しいタブでイベントを発生させる方法(オプション=> )新しいタブをアクティブなものにすることなく。

答えて

1

イベントが発生したタブをチェックインする方法を説明していないので、現在アクティブなタブを見ていると思われます。バックグラウンドタブに何かがロードされていれば動作しません。代わりに、(ロードされた文書)e.targetを見て、それがで対応するタブを確認する必要があります:

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

これは、ドキュメントがロードされた場合にロードされた文書は(もnullかもしれないタブのあなたの<browser>要素を与えますトップレベルの文書ではありませんでした)。

+0

ありがとうございます、ブラウザの要素によってスクリプトが簡単になりましたが、私の問題は解決されません.......新しいタブで発生しているはずのイベントはまだ古いタブで発生しています.......助けてください.. – KAS

関連する問題