Позиционирование панели с помощью Firefox Add-on SDK

Я пытаюсь добиться некоторого прогресса в позиционировании моей панели в надстройке с новым SDK.

Я вижу, что в документации показан только один способ управления положением панели, а именно передача привязки, когда вы show () it:

show (привязка)

Отображает панель.[привязка: дескриптор]

Дескриптор узла DOM на странице, для которого панель должна отображаться быть на якоре. Если не указано, панель центрируется внутри наиболее последнее окно браузера. Обратите внимание, что в настоящее время невозможно таким образом якорные панели используют только высокоуровневые API.

В идеале я бы хотел, чтобы якорем был виджет, к которому панель будет привязана при щелчке этого виджета, но виджет не является узлом DOM на странице , поэтому я думаю, что нет ...

Я, вероятно, смогу обойти это, но я даже не могу найти рабочий пример того, как привязать панель к узлу DOM. Когда я передаю обратно узел DOM в contentScript через порт следующим образом:

lib / main.js

  var scraper = pageMod.PageMod({
    include: ['*'],
    contentScriptWhen: 'ready',
    contentScriptFile: [data.url('jquery-1.6.2.min.js'), data.url('scraper.js')],
    onAttach: function(worker){
      worker.port.on('pageLoaded', function(page){
        widget.panel.show(page.anchor);
      }); 
    } 

data / scraper.js

$('body').append('
  <div id="anchor-to-me" style="position:fixed; bottom: 0; right: 0;">.</div>
');

var anchor = $('#anchor-to-me').get();
self.port.emit('pageLoaded', { anchor : anchor  }); 

, я получаю следующее ошибка консоли:

error: An exception occurred.
Traceback (most recent call last):
  File "resource://jid1-wuvxefqtmptsnw-at-jetpack-addon-kit-lib/panel.js", line 147, in show
    let document = getWindow(anchor).document;
  File "resource://jid1-wuvxefqtmptsnw-at-jetpack-addon-kit-lib/panel.js", line 345, in getWindow
    let anchorWindow = anchor.ownerDocument.defaultView.top;
TypeError: anchor.ownerDocument is undefined

Любая информация, которая поможет мне успешно привязаться к элементу DOM или найти другой способ позиционирования панели, была бы замечательной.

Спасибо.

8
задан Wladimir Palant 30 September 2011 в 21:17
поделиться