刷新您想要运行内容脚本的选项卡应该可以解决问题,但是如果您不想要求您可以将内容脚本“按需”注入到需要它的选项卡中扩展程序已启动,如下所示:
// Injects content_script.js into tab with id 1234
injectScriptInTab('content_script.js', 1234);
function injectScriptInTab(url, tabId) {
readFile(url, function(scriptBody) {
chrome.tabs.executeScript(tabId, { code: scriptBody });
});
}
function readFile(url, callback) {
var xhr = new XMLHttpRequest();
try {
xhr.onreadystatechange = function(){
if (xhr.readyState != 4) {
return;
}
if (xhr.responseText) {
callback(xhr.responseText);
}
else {
throw new Error('No data returned for readFile: ' + url);
}
}
xhr.onerror = function(error) {
console.error(error);
}
xhr.open("GET", url, true);
xhr.send(null);
} catch(e) {
console.error(e);
}
}
为了保持理智,您可能希望在 content_script.js 中添加一些内容,以防止脚本在给定选项卡中多次执行,例如
if (window.loadedMyContentScript) return;
window.loadedMyContentScript = true;
/* remainder of content script */