在插件上下文中访问contentScript变量,反之亦然?

时间:2012-02-05 13:24:43

标签: javascript firefox-addon firefox-addon-sdk

这个可能是同一部分下“内容内容未被识别的变量”的副本。我从那个问题的答案中解决了我的一部分问题。是的,我理解

  

内容脚本上下文与插件脚本上下文完全断开连接。内容脚本在文档的上下文中运行,而插件脚本则不是。

但这是否意味着我们永远无法在插件脚本上下文中访问内容脚本上下文中的变量?如果我们能以任何方式访问它们,请告诉我。我的需求需要将对象作为参数发送到另一个脚本(data / utilities.js)中的函数,并可能获取返回的对象。做前者没有任何困难,但我坚持上述背景问题的后者cos。我能够从内容脚本上下文返回值,但无法在插件上下文中访问该值。任何人都可以帮我解决一个小例子吗?

PS我可以在那里讨论它,但我读到我不应该因为这不是一个讨论论坛。

1 个答案:

答案 0 :(得分:1)

您无法直接从插件脚本上下文直接访问内容脚本中的变量。您可以使用

将变量传回内容脚本中的加载项

self.port.emit('send-some-var', some_var)

然后,您将通过侦听同一事件在附加组件脚本中接收变量的值:

worker.port.on('send-some-var', function(data) { console.log(data) })

然而,主要的限制是传递的数据必须是JSON可序列化的,因此您不能拥有方法等的复杂对象。只有数据。