2

私は最初の Chrome 拡張機能に取り組んでいます。popup.htmlロードするデフォルトのポップアップがありますpopup.js

Chrome の tabs.executeScript に対するserg の回答を使用しました- パラメーターを渡し、ライブラリを使用していますか? popup->page インタラクションのインスピレーションとして。

問題は、次のクリック ハンドラーがpopup.js機能することです。

function click(e) {
    chrome.browserAction.setBadgeText ( { text: "loading" } );
    chrome.tabs.executeScript(null,
        {code:"globalVarName = {'scriptOptions': {...}};" },
        chrome.tabs.executeScript(null, {file: "js/script.js"},
            chrome.browserAction.setBadgeText ( { text: "done" } ))
    );
    window.close();
}

ただし、次の場合はそうではありません。

function click(e) {
    chrome.browserAction.setBadgeText ( { text: "loading" } );
    chrome.tabs.executeScript(null,
        {code:"globalVarName = {'scriptOptions': {...}};" },
        chrome.tabs.executeScript(null, {file: "js/script.js"},
            function(){chrome.browserAction.setBadgeText ( { text: "done" } );})
    );
    window.close();
}

完成したら複数のことができるようになりたいです。

編集:

chrome.browserAction.setBadgeText()スクリプトの実行が終了したときではなく、最初のケースがすぐに実行されることに気付きました。したがって、そのケースは無視できます。これを反映するために、質問のタイトルを言い換えました。

私が探しているのは、2 番目のケースのコールバックがまったく実行されない理由です。

4

1 に答える 1