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 に答える