Моя надстройка должна сделать две вещи:содержание панели Update после щелчка на виджете в Firefox дополнения
- Когда я нажимаю на виджет, некоторые contentScript выполняет и некоторые данные возвращаются надстройка
- Эти данные должны быть показаны на панели, прикрепленной к виджету.
- Если я снова нажму, данные должны быть обновлены и содержимое панели.
Вот что я имею в sdk 1.15 Mozilla.
Сообщение «из виджета» напечатано, как ожидалось, но «из панели» нет.
У меня есть два вопроса:
- Если я хочу, чтобы показать
foo
в моей панели, это правильный способ сделать это? Как обновить панель с информацией, переданной из скрипта содержимого? Почему мой postMessage не получает сообщение, которое отправил мой Виджет?
var widgets = require('sdk/widget'); var tabs = require('sdk/tabs'); var self = require('sdk/self'); var data = require('sdk/self').data; var requestsPanel = require('sdk/panel').Panel({ width:215, height:160, contentURL: data.url('requests.html'), //this is just dummy data }); // try to receive data DOESN'T WORK requestsPanel.on('message', function (foo) { console.log('from panel', foo); }); var widget = widgets.Widget({ id: 'div-show', label: 'Show requests', contentURL: data.url('favicon.ico'), panel: requestsPanel, onClick: function() { worker = tabs.activeTab.attach({ contentScript: "self.port.on('getData', function() {"+ "var foo = [1,2,3];"+ "self.port.emit('sendData', foo);"+ "});" }); // request to check for generated requests worker.port.emit('getData'); // check the return from generated requests worker.port.on('sendData', function (foo){ console.log('from widget', foo); requestsPanel.postMessage(foo); }); } });
У меня все еще не было времени, чтобы посмотреть на эту проблему на моей стороне, но ваш ответ очень ясен. Большое спасибо. Я соглашусь, как только проведу немного на моей стороне. –