我正在开发我的第一个 Chrome 扩展程序。我有一个popup.html
加载的默认弹出窗口popup.js
。
我使用了 serg对Chrome 的 tabs.executeScript 的回答——传递参数和使用库?作为弹出窗口->页面交互的灵感。
问题是以下点击处理程序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()
,而不是在脚本完成执行时执行。所以这种情况可以忽略。我已经改写了问题标题以反映这一点。
我正在寻找的是为什么第二种情况的回调根本不执行。