如何将数据从内容脚本1获取到内容脚本2的附加脚本
How to get data from content script 1 to add-on script to content script 2?
恐怕我还没有弄清楚脚本之间通过port
的通信是如何工作的。在panel.js
中,我监听面板中要按下的提交按钮。我将值保存在数组vals
中,并用传递
self.port.emit("submitted", vals);
使用在main.js
中侦听
panel.port.on("submitted", function(vals) { ... });
现在我想将vals
发送到另一个内容脚本('page.js'),该脚本将使用数据来操作网站的DOM。
在main.js上我尝试过:
require("page-mod").PageMod({
include: "*",
contentScriptWhen: 'end',
contentScriptFile: data.url("page.js"),
onAttach: function(worker) {
panel.on('submitted', function(vals) {
worker.port.emit('output', vals);
});
}
});
一般来说,您尝试的方法看起来是可行的,只是您可能想用panel.port.on
替换panel.on
。然而,员工可以来来往往,你不想试图与那些不再在那里的人交流。文档中有一个很好的例子,可以跟踪活跃的工作人员,可以根据您的目的进行微调:
var workers = [];
var pageMod = require("page-mod").PageMod({
include: '*',
contentScriptWhen: 'end',
contentScriptFile: data.url('page.js'),
onAttach: function(worker) {
// Add new worker to the list
workers.push(worker);
worker.on('detach', function () {
// Remove no longer active worker from the list
var index = workers.indexOf(worker);
if (index >= 0)
workers.splice(index, 1);
});
}
});
panel.port.on('submitted', function(vals) {
for (var i = 0; i < workers.length; i++)
workers[i].port.emit('output', vals);
});
相关文章:
- 从远程脚本获取用户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脚本获取数据作为响应