首先,Rob W 所说的非常重要,如果您还不知道,对内容脚本运行的不同环境的良好解释很有用。
你可能想看看这个。这不是您要寻找的 100%,但主要部分就在那里。基本上从你的背景页面(如果你还没有创建一个),你使用 chrome.tabs.executeScript() 来执行你下载的脚本。这在真实页面上下文而不是“内容脚本”上下文中运行 javascript。您现在需要的只是将该脚本(以字符串形式)获取到后台页面,并确定要在其上执行它的 tabId(来自发件人选项卡)
您可以使用chrome.extension.sendMessage将其发送到后台页面,并在 background.js 中使用chrome.extension.onMessage接收带有您的脚本的消息。从那里使用 sender 参数获取 tabId (sender.tab.id),并构建您的 executeScript 调用。
另一个有用的提示是,默认情况下,chrome 中的页面脚本(动态 javascript 执行)不会以任何设置的方式显示在 chrome 调试器中,但您可以将类似这样的内容附加到 javascript 的字符串中:
"\n//@ sourceURL=/myFolder/myDynamicJavascript.js"
这将使该脚本始终显示 chrome 调试器的“/myFolder/myDynamicJavascript.js”路径,允许您在插入的 js 代码中设置断点。这是救命稻草。