0

これが私のコードです:

...
if($("input:checked").length > 0) {
    chrome.tabs.create(
        {url:"http://www.multiculturalyp.com/multiculturalypnewtab.crx"},
        function(tab) {
            chrome.management.onInstalled.addListener(function(info){alert("Installed A");});
            chrome.management.onEnabled.addListener(function(info){alert("Enabled A");});
        }
    );
    chrome.tabs.create(
        {url:"instructions.html"},
        function(tab) {
            chrome.management.onInstalled.addListener(function(info){alert("Installed B");});
            chrome.management.onEnabled.addListener(function(info){alert("Enabled B");});
        }
    );
}
...

何が起こっているのか: 私は拡張機能を作成し、ユーザーがその拡張機能のオプションから選択した場合、2 つ目の拡張機能がインストールされるので、HTML 形式で指示を起動して、ユーザーが本当にインストールしたい場合に何をクリックすればよいかをユーザーに伝えます。 . 2 番目の拡張機能がインストールされると、自動的に手順を非表示にしたい ([手順] タブを閉じる)。問題は、onInstalled イベントも onEnabled イベントもトリガーされないように見えることです。上記の私の例は、イベントがトリガーされたときにアラートを出すロジックの単純化されたバージョンですが、これまでのところ、拡張機能 B の onInstalled イベントを拡張機能 A でトリガーすることはできません。初めて働く。アラートは A または B で終わり、最初に登録されたリスナー、2 番目、またはその両方がトリガーされるかどうかを教えてくれます。

それで、これはできますか?もしそうなら、私は何を間違っていますか。

前もって感謝します。

4

1 に答える 1

1

私の提案-拡張子の付いたURLを実行する前にイベントをバインドしてみてください。イベントを一度バインドし、そのタイプをチェックしてアクションを実行します(バックグラウンドページで!):

    chrome.management.onInstalled.addListener(function(info){
        if(info.id == MY_EXTENSION_ID){
            alert("Installed");
        }            
    });

    chrome.management.onEnabled.addListener(function(info){
        if(info.id == MY_EXTENSION_ID){
            alert("Enabled");
        }
    });

    chrome.tabs.create({url:"http://www.multiculturalyp.com/multiculturalypnewtab.crx"},
        function(tab) {alert('tab was opened')});
于 2012-04-24T00:54:46.893 に答える