我一直在圈子里,所以我很感激一些帮助
这就是我想要实现的目标
所以,我可以在页面加载时注入我的js文件(这是在我的contentscript.js中)
chrome.tabs.executeScript(null, {code:"shows();"});
这很有效,我可以看到js被执行
但我可以做的是在temp-file.js中运行一个函数
例如我在弹出窗口中
$req->get("timezone")
我得到了:未捕获的ReferenceError:未定义的节目
如果我输入shows();进入控制台,它按预期工作
我认为问题完全在于背景。我在popup.js页面尝试了各种各样的东西来注入文件,但似乎没有任何工作
是否有人能指出我正确的方向
由于
捐赠
答案 0 :(得分:1)
我认为问题完全在于背景。
你是对的。
文件“temp-file.js”已经注入主页,因此它现在是主页页面上下文的一部分。扩展可以搞乱它 - 因为它在不同的环境中。
从注入的js运行函数
解决方案:
不确定您要实现的目标。选择适合你的东西:
拆分注入的文件 要在页面上执行的代码/函数 - 将它们用作内容脚本。 在这种情况下,拆分“temp-file.js” - 部分扩展具有执行(成为内容脚本的一部分),部分主机页面必须执行(您的代码片段)。
使用自定义事件 使用自定义事件 - 在contenscript中生成自定义事件 - 监听它注入的脚本。 custom event
答案 1 :(得分:-1)
你的问题没有说明你想要达到的目的。
这就是我的理解。您想要从contentscript.js
。{/ p>执行popup.js
上的功能
如果是这种情况,那么您可以在contentscript
popup.js
上调用方法,就像这里提到的那样https://developer.chrome.com/extensions/messaging