2011-12-17 6 views
0

FirefoxアドオンSDKを使用して、ページロード時に現在のアクティブなタブのNotificationBoxに通知を正常に追加するコードを作成しました。Firefoxのページ読み込み時に正しいタブに通知するにはどうすればよいですか?

は、どのように私はそれがロードされているDocumentに属しているタブにNotificationBoxを選択するために、getNotificationBox()方法のパラメータ化バージョンを使用するように変更できますか?

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

試してみてください。

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

documentはフレームかもしれない場合は、代わりにdocument.defaultView.top.documentを使用する必要があります。

+0

素晴らしい。ありがとうございました。 – Cheekysoft

関連する問題