как отправить объект JSON из contentURL: data.url ("foo.html") в contentScript - PullRequest
0 голосов
/ 02 февраля 2012

Я пытался использовать window.postMessage, но это только отправляет переменную (содержащую строку) в contentScript. Но я хочу отправить несколько значений переменных. Это представляется возможным при использовании объекта JSON.

Ответы [ 2 ]

0 голосов
/ 03 февраля 2012

Если вы используете:

self.port.emit('some-event', object)

... и отправляете только объекты, которые могут быть правильно сериализованы в JSON, SDK будет обрабатывать сериализацию и анализ для вас.Вот пример быстрого компоновщика, который иллюстрирует это:

https://builder.addons.mozilla.org/addon/1036506/latest/

Я думал, что postMessage будет таким же?

0 голосов
/ 02 февраля 2012

Просто используйте JSON.stringify(), чтобы превратить объект в строку:

var data = {a: 1, b: 2};
window.postMessage(JSON.stringify(data), "*");

На другом конце используйте JSON.parse(), чтобы отменить процесс:

var data = JSON.parse(message);
...