如何从 Chrome 扩展程序中的内容脚本中获取变量
How to get variables from content scripts in a Chrome extension?
我正在尝试修改Google用于代码注入的示例代码。文件manifest.json
包含一个后台脚本:
"background": {
"scripts": ["background.js"],
"persistent": false
},
我添加一个内容脚本:
"content_scripts": [
{
"matches": ["*://*/*"],
"js": ["filter.js"]
}
],
现在,我想在用户单击扩展的按钮时调用filter.js
中定义的函数foo()
。我在background.js
这样做:
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript({
code: 'foo(testText);'
});
});
其中foo()
在filter.js
function foo(test) {
alert('Test: ' + String(test));
}
var testText = 'foo';
我可以执行该函数,但无法传递testText
变量。我得到VM3181:1 Uncaught ReferenceError: testText is not defined
.
我知道我错误地引用了变量,但是如何正确执行此操作?
看看 sendMessage
和 onMessage
,示例来自 Google 的重新利用:
在background.js
:
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.sendMessage(tab.id, {greeting: "foo"}, function(response) {
console.log(response.farewell);
});
});
在filter.js
:
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.greeting == "foo") {
//your Foo function can be called
sendResponse({farewell: "bar"});
}
});
相关文章:
- 从远程脚本获取用户IP
- 使用javascript后台脚本获取Yotutube频道信息
- 如何使用Java脚本获取具有相同ID的多个图像的高度和宽度
- 从PHP脚本获取音频文件时,更改JavaScript音频对象的当前时间
- 使用java脚本获取印度标准时间
- 如何使用java脚本获取本地机器中的默认打印机名称
- 从Javascript动态脚本获取参数值
- 如何将数据从内容脚本1获取到内容脚本2的附加脚本
- 使用 Java 脚本获取 HTML 正文中所有文本框的名称和 ID
- Google Analytics应用脚本获取包含特定字词的所有媒体事件标签
- 如何从支持 e10s 的 Firefox 中的框架脚本获取页面信息
- 如何使用 java 脚本获取 httprequest 的响应代码
- 是否可以使用客户端脚本获取推特搜索 API 版本 1.1 的数据
- 使用 Java 脚本获取图像的缩放宽度和高度
- 如何使 (Java) 脚本获取 URL 并基于该 (#transclusion, #highlight) 执行 if 语
- 执行 PHP 脚本并使用 AJAX 从 JS 脚本获取值
- 如何通过操作脚本获取和设置外部 HTML 内容中的选定单选按钮
- 通过 Java 脚本获取服务器控件属性值
- CQ5 ECMA脚本获取对服务的引用
- 从服务器上的php脚本获取数据作为响应