- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Firefox Addon 的 main.js 中有两个内容脚本: contentScript A 位于“面板”模块(模块 A)内 contentScript B 位于“page-mod”模块(模块 B)内他们如何沟通或交换信息?我尝试通过使用以下步骤来做到这一点:1. 从 contentScript A 发送消息到 AddonScript A 2. 通过在 A 中包含模块 B 将消息从 AddonScript A 发送到 AddonScript B 3. 从 AddonScript B 发送消息到 contentScript B。但是,它不起作用(而是间歇性地工作,可能是由于代码中的某些错误)。.这个方法可以吗?任何人都可以评论任何更好的方法吗?.谢谢
最佳答案
由于 SDK 的安全模型,您的面板和页面模块之间的任何通信都需要通过主附加代码本身进行路由。下面是一个从面板中实现的表单获取数据并通过主脚本将其发送到页面模块的示例:
https://builder.addons.mozilla.org/addon/1035008/latest/
这段代码的关键是:
var pagemod = require("page-mod").PageMod({
include: [target],
contentScriptFile: [data.url('jquery-1.7.1.min.js'), data.url('page-mod.js')],
onAttach: function(worker) {
// console.log('attached...');
// when we get a panel-message event from the panel
panel.port.on('panel-message', function(data) {
// we emit the same message through to the page-mod
worker.port.emit('panel-message', data);
});
}
});
您会注意到,附加 page-mod 后,我设置了面板实例以捕获“panel-message”事件,然后将其直接发送到当前的 page-mod worker。
关于firefox-addon-sdk - Firefox 插件 SDK : comunication between different contentScripts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8884478/
我在 Firefox Addon 的 main.js 中有两个内容脚本: contentScript A 位于“面板”模块(模块 A)内 contentScript B 位于“page-mod”模块(
我是一名优秀的程序员,十分优秀!