首先,Rob W说的非常重要,如果您还不知道它,对内容脚本运行的不同环境的一个很好的解释很有用。
您可能想检查this了。这不是100%你正在寻找,但主要部分在那里。基本上从你的背景页面(如果你还没有创建一个),你可以使用chrome.tabs.executeScript()来执行你下载的脚本。它在真实页面上下文中运行JavaScript,而不是“内容脚本”上下文。您现在需要的只是将该脚本(以字符串形式)提供给后台页面,并确定要执行的脚本(来自发件人选项卡)
您可以使用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代码中设置断点。这是一个救生员。
请尝试:http://developer.chrome.com/extensions/contentSecurityPolicy.html – HaNdTriX
@HaNdTriX不适用于内容脚本。 –
@DudeOnRock您是否知道内容脚本的执行上下文与页面的执行上下文之间的区别? –