Frage

Intern Firefox wird ein JSON kodieren ein Objekt über postmessage zu und von dem Web Worker übergeben. Allerdings baut das funktioniert nur in Trunk von Firefox (3.6 oder höher) und nicht in Firefox 3.5, so dass die Frage wirklich ist, wie nach hinten, um Unterstützung dieser Operation auf die aktuelle Plattform. Die window.atob () und window.btoa () -Methoden vor vorgeschlagen worden war, aber leider diese nicht intern auf die Gewinde vorhanden sind, weil sie keinen Zugang zu dem DOM.

Mozilla erklärt öffentlich diese auf ihre Entwickler Wiki, aber es von vielen in der Gemeinschaft wurde festgestellt, dass dies geschieht. Check ejohn Blog-Test: http://ejohn.org/files/bugs/postMessage/

ich überprüft haben, dass dies der Fall auch ist, in 3,5, es geht nur Strings und in 3.6 wird das Objekt übergeben.

War es hilfreich?

Lösung

Ich habe nicht bemerkt, die automatische JSON-Codierung nicht in Firefox 3.5 arbeiten, aber ich habe vor allem mit Gears gearbeitet, die es ohnehin nicht unterstützt.

Versuchen Sie eine JSON Dienstprogramm in sowohl dem Arbeitnehmer Skript und das übergeordnete Skript, dann kodieren manuell und diese selbst entschlüsseln. Das funktioniert ziemlich gut für mich mit Gears.

Dieser Ansatz sollte nicht brechen, wenn Firefox automatisch die JSON-Codierung für Sie beginnt zu tun, da die codierte Zeichenfolge JSON wird ein String bleiben.

Andere Tipps

In JavaScript gibt es zwei Funktionen jeweils zur Decodierung und Codierung base64-Strings:

atob () btoa ()

fand ich die Lösung für mein eigenes Problem!

Es scheint, dass, wenn das Thread-Variable auch wenn global deklarierte, seine .onmessage Eigenschaft verliert, wenn diese die Eigenschaft in einer anderen Funktion deklariert wurde. Wenn die Eigenschaft auf dem globalen Bereich instanziert wird, dann werden JSON-Nachrichten analysiert korrekt.

Ich bin immer noch nicht sicher, ob ich verstehe, was hier los ist, aber zumindest habe ich einen Weg gefunden, Objekte zu laufen um, ohne auf zusätzliche stingify / json Bibliotheken zu bauen.

Wenn jemand mir dies erklären könnte, damit ich ein besseres Verständnis habe, würde es geschätzt:)

ich Setup ein Testfall hier: http://x.miernicki.com/ denen meldet sich der inter-Thread-Nachrichten an die Konsole firebug wenn jemand sich interessiert. Das half mir Objekte in Fox3.5 herumgereicht zu bekommen, und man ließ mich schließlich sehen, was das Problem war.

Da Sie für eine FF-only Lösung eindeutig suchen, haben Sie yourObject.toSource() versucht?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top