我使用Firefox附加SDK构建了以下代码,该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
);
});
答案 0 :(得分:1)
尝试:
var notificationBox = mainWindow.gBrowser.getNotificationBox(mainWindow.gBrowser.getBrowserForDocument(document));
如果document
可能是一个框架,则需要使用document.defaultView.top.document
。