再次执行内容脚本的正确方法是使用chrome.tabs.executeScript
方法。它接收两个参数。第一个参数是tabId
,可以通过多种方式获得,例如其中一个chrome.tabs
事件。用于null
在当前选定的选项卡中执行内容脚本(注意:这也可能是一个活动的开发工具窗口!)。
例子:
// Reloads the current tab
chrome.tabs.executeScript(null, {code:'location.reload();'});
// Executes contentscript.js in the current tab
chrome.tabs.executeScript(null, {file:'contentscript.js'});
// Executes contentscript.js in all frames in the current tab
chrome.tabs.executeScript(null, {file:'contentscript.js', allFrames: true});
// Receives message from content script, and execute a content script:
chrome.extension.onMessage.addListener(function(details) {
if (details.message === 'load a content script') {
chrome.tabs.executeScript(details.sender.tab.id, {file: 'a_script.js'});
}
});
// The previous one is activated from a content script, as follows:
chrome.extension.sendMessage('load a content script');
( onMessage
andsendMessage
必须用来代替onRequest
and sendRequest
,因为 Chrome 20)