Pergunta

Internamente, o Firefox irá JSON codificar um objeto passado através postMessage de e para o trabalho na Web. No entanto, isso só funciona em Trunk versões do Firefox (3.6+) e não no Firefox 3.5, então a questão é realmente como adicionar trás apoiar desta operação para a plataforma atual. O window.atob () e window.btoa () métodos tinha sido sugerido antes, mas infelizmente estes não estão disponíveis internamente para os fios, porque eles não têm acesso ao DOM.

A Mozilla declara publicamente isso em seu wiki desenvolvedor, mas tem sido notado por muitos na comunidade que isso acontece. teste blogue da Check ejohn: http://ejohn.org/files/bugs/postMessage/

eu verificou-se que este é o caso, bem como, em 3,5, que passa apenas cadeias, e em 3,6 é passará o objeto.

Foi útil?

Solução

Eu não tenho notado o JSON-codificação automática não funciona no Firefox 3.5, mas eu estive trabalhando principalmente com o Gears, que não apoiá-lo de qualquer maneira.

Tente incluindo um JSON utilidade em tanto para o trabalhador script e o script pai, então manualmente codificar e decodificar-lo sozinho. Isso funciona muito bem para mim com Gears.

Esta abordagem não deve quebrar quando Firefox começa automaticamente a fazer a codificação JSON para você, uma vez que a string JSON codificado continuará a ser uma string.

Outras dicas

Em JavaScript existem duas funções respectivamente codificar e descodificar cordas base64:

atob () btoa ()

Eu encontrei a solução para meu problema!

Parece que se a variável de linha, mesmo se declarou globalmente, perde sua propriedade .onmessage se que a referida propriedade foi declarada dentro de outra função. Se a propriedade é instanciado no âmbito global, então as mensagens JSON são analisados ??corretamente.

Eu ainda não tenho certeza eu entendo o que está acontecendo aqui, mas pelo menos eu descobri uma maneira de passar objetos ao redor sem ter que depender de qualquer adicional stingify / json bibliotecas.

Se alguém poderia explicar isso para mim para que eu tenha uma melhor compreensão, seria apreciada:)

Configuração I um caso de teste aqui: http://x.miernicki.com/ que registra o mensagens inter-fio para o console Firebug se cuidados ninguém. Isso me ajudou a obter objetos repassados ??em Fox3.5 e, finalmente, me permitido ver qual era o problema.

Uma vez que você está claramente à procura de uma solução apenas de FF, você já tentou yourObject.toSource()?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top