【问题标题】:How can i notify the correct tab at Firefox page-load time?如何在 Firefox 页面加载时通知正确的选项卡?
【发布时间】:2011-12-17 23:00:15
【问题描述】:

我使用 Firefox 插件 SDK 构建了以下代码,该代码在页面加载时成功地将通知添加到当前活动选项卡上的 NotificationBox

如何更改它以使用getNotificationBox() 方法的参数化版本,以便在属于正在加载的Document 的选项卡上选择NotificationBox

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
  );
});

【问题讨论】:

    标签: javascript firefox-addon xul firefox-addon-sdk


    【解决方案1】:

    试试:

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

    如果document 可能是一个框架,则需要使用document.defaultView.top.document 代替。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多