1

通过 trigger.io 构建插件,我在 Chrome/Safari 和 Firefox 中看到了奇怪的行为。

在 Firefox 中,数组被转换为以数字为键的对象,例如:

["getData", ["x"]]

正在变成:

{"0":"getData","1":{"0":"x"}}

这会导致序列化/反序列化、跨浏览器规范化等各种问题,我不清楚为什么会发生这种情况。

当通过 forge.message 将对象从前景传递到背景时似乎会发生这种情况 - 很高兴回答任何问题以缩小范围!

4

2 回答 2

3

这看起来确实很奇怪,你能告诉我们你使用的是什么版本的 Firefox 吗?

同时,您可以使用 JSON.stringify 和 JSON.parse 自己序列化和反序列化数组。

于 2013-01-23T09:53:04.497 回答
1

这是由 Firefox 扩展中的数组序列化错误引起的,请参阅:Firefox 扩展正在将 javascript 数组作为对象发送

正如@connorhd 所说,解决方案(直到firefox 解决问题)是在前台和后台之间发送消息时将其反序列化为json。对我们来说不幸的是,这是一个热门路径,并且不是非常受欢迎的开销,但它似乎(或多或少)解决了 Firefox 18 中的问题。

于 2013-01-24T19:58:09.673 回答