2016-04-05 4 views
1

私はFirefoxのアドオンで作業しています。のは、このような単純なコードを持ってみましょう:firefoxで新しいタブを開くとjs関数が呼び出されます

overlay.xul

<script src="overlay.js"/> 

<menupopup id="menu_ToolsPopup"> 
    <menuitem id="helloworld-hello" label="&helloworld;" 
    oncommand="Helloworld.onMenuItemCommand(event);"/> 
</menupopup> 

をそして

var Helloworld = { 
    onLoad: function() { 
    // initialization code 
    this.initialized = true; 
    }, 

    onMenuItemCommand: function() { 
    alert("JAVASCRIPT"); 
    } 
}; 

window.addEventListener("load", function(e) { Helloworld.onLoad(e); }, false); 

overlay.jsこれは、メニューバーの1つのツールを作成し、私は警告メッセージをクリックした場合に表示されます。それは完璧に動作しています。しかし、私の必要性は、新しいタブが開かれ、FirefoxでURLを閲覧すると、警告メッセージが表示されます。

これは、新しいタブが開き、FirefoxでURLをブラウズしたときに "onMenuItemCommand"関数が呼び出されることを意味します。

答えて

0

TabOpenのイベントリスナーがあります。ウィンドウが開くときにも興味があります。私はブランドの新しいウィンドウで、TabOpenがその最初のタブのトリガーさえすれば、あなたが分かち合うことが分かっているかどうかわからない。

https://developer.mozilla.org/en-US/docs/Web/Events/TabOpen

あなたはtabbrowser要素にこのイベントを添付します。たとえば、:

Services.wm.getMostRecentWindow('navigator:browser').gBrowser.addEventListener('TabOpen', function() { 
    Services.prompt.alert(null, 'opened tab', 'hi'); 
}, false); 
+0

実際に私のクエリは、新しいタブが開いているときにXMLファイルからjs関数を呼び出す必要があるので、xmlコードが必要です。 –

+0

@KrishKowsi私はあなたの質問を得ることはありません。 – Noitidart

+0

実際に私の問題は、jsファイルを直接呼び出すことができない、私はXMLファイルを介してjs関数を呼び出すことができますです。私の既存のコードでは、メニューをクリックしてjs関数を呼び出しましたが、今はメニューをクリックせずに同じ関数を呼び出す必要があります。それは一度ブラウザが開くか、新しいタブが自動的にトリガされるjs関数を開いている。そして、それらのjs関数呼び出しコードはxmlで与えられます。 –

関連する問題