私は最初の 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 番目のケースのコールバックがまったく実行されない理由です。