Я пытался использовать window.postMessage, но это только отправляет переменную (содержащую строку) в contentScript. Но я хочу отправить несколько значений переменных. Это представляется возможным при использовании объекта JSON.
window.postMessage
Если вы используете:
self.port.emit('some-event', object)
... и отправляете только объекты, которые могут быть правильно сериализованы в JSON, SDK будет обрабатывать сериализацию и анализ для вас.Вот пример быстрого компоновщика, который иллюстрирует это:
https://builder.addons.mozilla.org/addon/1036506/latest/
Я думал, что postMessage будет таким же?
Просто используйте JSON.stringify(), чтобы превратить объект в строку:
JSON.stringify()
var data = {a: 1, b: 2}; window.postMessage(JSON.stringify(data), "*");
На другом конце используйте JSON.parse(), чтобы отменить процесс:
JSON.parse()
var data = JSON.parse(message);