我尝试使用window.postMessage
,但这只会将一个变量(包含字符串)发送到contentScript。但我想发送一些变量的值。这似乎可以通过使用JSON对象来实现。
答案 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会一样吗?