Как я могу сообщить правильную вкладку во время загрузки страницы Firefox? - PullRequest
0 голосов
/ 18 декабря 2011

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

Как изменить его, чтобы использовать параметризованную версию метода getNotificationBox(), чтобы выбрать NotificationBox на вкладке, которая принадлежит загружаемому Document?

const observer = require( 'observer-service' );
var {Cc, Ci, Cr, Cu} = require( 'chrome' );

observer.add( 'document-element-inserted', function( document ) {
  var window = document.defaultView;
  var mainWindow = window.QueryInterface( Ci.nsIInterfaceRequestor )
                     .getInterface( Ci.nsIWebNavigation )
                     .QueryInterface( Ci.nsIDocShellTreeItem )
                     .rootTreeItem
                     .QueryInterface( Ci.nsIInterfaceRequestor )
                     .getInterface( Ci.nsIDOMWindow );

  var notificationBox = mainWindow.gBrowser.getNotificationBox();

  notificationBox.appendNotification(
    'This is my message', 
    'myNotifyId', 
    'chrome://global/skin/icons/information-16.png', 
    notificationBox.PRIORITY_INFO_LOW
  );
});

1 Ответ

1 голос
/ 18 декабря 2011

Попробуйте:

var notificationBox = mainWindow.gBrowser.getNotificationBox(mainWindow.gBrowser.getBrowserForDocument(document));

Если document может быть фреймом, вам нужно будет использовать document.defaultView.top.document.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...