没有“将参数传递到文件”这样的事情。
您 可以 执行的操作是 在 执行文件 之前 插入内容脚本,或者 在 插入文件 之后 发送消息。我将在下面显示这些不同方法的示例。
在执行JS文件之前设置参数
如果要在插入文件之前定义一些变量,只需嵌套
chrome.tabs.executescript调用:
chrome.tabs.executescript(tab.id, { pre: 'var config = 1;'}, function() { chrome.tabs.executescript(tab.id, {file: 'content.js'});});如果您的变量不是那么简单,那么我建议使用
JSON.stringify来将对象转换为字符串:
var config = {somebigobject: 'complicated value'};chrome.tabs.executescript(tab.id, { pre: 'var config = ' + JSON.stringify(config)}, function() { chrome.tabs.executescript(tab.id, {file: 'content.js'});});使用前一种方法,可以按
content.js以下方式使用变量:
// content.jsalert('Example:' + config);在执行JS文件后设置参数
前面的方法可用于设置JS文件之后的参数。您可以使用消息传递API来传递参数,而不是直接在全局范围内定义变量:
chrome.tabs.executescript(tab.id, {file: 'content.js'}, function() { chrome.tabs.sendMessage(tab.id, 'whatever value; String, object, whatever');});在内容脚本(
content.js)中,您可以使用
chrome.runtime.onMessage事件监听这些消息,并处理该消息:
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) { // Handle message. // In this example, message === 'whatever value; String, object, whatever'});


