【发布时间】:2015-09-01 04:09:19
【问题描述】:
我一直在兜圈子,所以我希望能得到一些帮助
这就是我想要实现的目标
- 用户按下我的扩展程序图标
- 弹出窗口出现两个按钮,“运行函数 a”和“运行函数 b”
- 当他们按下按钮时,它会在我自己的 js 文件中运行该函数,该文件是我注入的。
- 例如,函数 a 可以是计算活动选项卡中某种类型的元素的数量
所以,我可以在页面加载时注入我的 js 文件(这是在我的 contentscript.js 中)
var s = document.createElement('script');
s.src = chrome.extension.getURL('temp-file.js');
s.onload = function() {
this.parentNode.removeChild(this);
};
(document.head||document.documentElement).appendChild(s);
这行得通,我可以看到正在执行的js
但我能做的是在 temp-file.js 中运行一个函数
例如在我的弹出窗口中
chrome.tabs.executeScript(null, {code:"shows();"});
我明白了:未捕获的 ReferenceError:未定义节目
如果我输入 show();进入控制台,它按预期工作
我认为问题完全在于上下文。我在 popup.js 页面中尝试了各种方法来注入文件,但似乎没有任何效果
有没有人能指出正确的方向
谢谢
授予
【问题讨论】: