如何将contentURL:data.url(“foo.html”)中的JSON对象发送到contentScript

时间:2012-02-02 17:51:30

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

我尝试使用window.postMessage,但这只会将一个变量(包含字符串)发送到contentScript。但我想发送一些变量的值。这似乎可以通过使用JSON对象来实现。

2 个答案:

答案 0 :(得分:0)

只需使用JSON.stringify()将对象转换为字符串:

var data = {a: 1, b: 2};
window.postMessage(JSON.stringify(data), "*");

另一方面使用JSON.parse()来扭转这个过程:

var data = JSON.parse(message);

答案 1 :(得分:0)

如果您使用:

self.port.emit('some-event', object)

...只发送可以正确序列化为JSON的对象,SDK将为您处理序列化和解析。这是一个快速构建器示例,说明了这一点:

https://builder.addons.mozilla.org/addon/1036506/latest/

我原以为postMessage会一样吗?