javascript - 如何为来自页面脚本的自定义消息创建事件监听器

标签 javascript firefox firefox-addon-sdk

假设注入(inject)了一个面板:

   //main.js
    var ext = require("sdk/panel").Panel({
      width: 300,
      height: 500,
      contentScriptFile: [data.url("js/angular/angular.min.js"),
                          data.url("js/angular/angular-route.js"),
                          data.url("js/app.js"),
                          data.url("js/utilities.js"),
                          data.url("js/services.js"),
                          data.url("js/directives.js"),
                          data.url("js/controllers.js"),
                          data.url("js/popup.js")],
      contentScriptWhen: "ready"
    });

我可以将监听器附加到事件选项卡的 DOM 以检测一些事件:

if(window.customObj != undefined)
{
  window.postMessage(window.customObj, window.location.href);
}

如何通过 popup.jsma​​in.js 中的自定义消息获取我发送的对象?

最佳答案

您的主脚本只能与内容脚本通信,包括那些注入(inject)到选项卡和那些注入(inject)到面板的脚本。您的内容脚本可以与您的主脚本和页面脚本通信。因此,为了从页面脚本中获取某些内容到 main.js,您的路径需要是:

page script/DOM --> content script

content script --> main script

并且,可选地,main script --> panel script

关于javascript - 如何为来自页面脚本的自定义消息创建事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26239723/

相关文章:

javascript - Mozilla firefox 中的黑盒

javascript - 如何使用 Firefox Addon-SDK 在工具栏小部件中有一个自由文本输入字段(文本框)

javascript - 如果任何字段留空,如何在表单中生成错误消息

javascript - 什么是W3.JS?为什么W3Schools推广它?

html - Firefox 的 CSS 定位

javascript - 使用 window.location.href 更改 URL 后如何知道 DOM 何时再次准备就绪

javascript - 有没有办法在 Firefox Addon SDK 中构造 DOM

像 window.location 这样的 url 的 Javascript 强类型

javascript - Node-RED/javascript : convert multi line string to single line string - strg. 替换不起作用

xml - xsd 架构引用和类型属性值的命名空间如何别名/绑定(bind)?