Из-за модели безопасности SDK любое взаимодействие между вашей панелью и вашим модом страниц должно проходить через основной код дополнения.Вот пример, который берет данные из формы, реализованной в Panel, и отправляет их через основной скрипт в мод страницы:
https://builder.addons.mozilla.org/addon/1035008/latest/
Ключевой фрагмент кода - этот:
var pagemod = require("page-mod").PageMod({
include: [target],
contentScriptFile: [data.url('jquery-1.7.1.min.js'), data.url('page-mod.js')],
onAttach: function(worker) {
// console.log('attached...');
// when we get a panel-message event from the panel
panel.port.on('panel-message', function(data) {
// we emit the same message through to the page-mod
worker.port.emit('panel-message', data);
});
}
});
Вы заметите, что когда подключен мод страницы, я настроил экземпляр панели для перехвата события 'panel-message', а затем отправил его прямо в текущий мод страницыработник.