appendNotification( label , value , image , priority , buttons, eventCallback )
If you specify the eventCallback
parameter, it should be a JavaScript function that gets called when interesting things happen related to the notification box. This function receives as its only parameter a string indicating what event occurred. At this time, there's just one event type: "removed". This indicates that the notification box has been removed from its window.
function testNotificationBoxWithButtons() { //Create some common variables if they do not exist. // This should work from any Firefox context. // Depending on the context in which the function is being run, // this could be simplified. if (typeof window === "undefined") { //If there is no window defined, get the most recent. var window=Components.classes["@mozilla.org/appshell/window-mediator;1"] .getService(Components.interfaces.nsIWindowMediator) .getMostRecentWindow("navigator:browser"); } if (typeof gBrowser === "undefined") { //If there is no gBrowser defined, get it var gBrowser = window.gBrowser; } function testNotificationButton1Callback(theNotification, buttonInfo, eventTarget) { window.alert("Button 1 pressed"); //Prevent notification from closing: return true; }; function testNotificationButton2Callback(theNotification, buttonInfo, eventTarget) { window.alert("Button 2 pressed"); //Do not prevent notification from closing: }; function testNotificationCallback(reason) { window.alert("Reason is: " + reason); }; let notifyBox = gBrowser.getNotificationBox(); let buttons = []; let button1 = { isDefault: false, accessKey: "1", label: "Button 1", callback: testNotificationButton1Callback, type: "", // If a popup, then must be: "menu-button" or "menu". popup: null }; buttons.push(button1); let button2 = { isDefault: true, accessKey: "2", label: "Button 2", callback: testNotificationButton2Callback, type: "", // If a popup, then must be: "menu-button" or "menu". popup: null }; buttons.push(button2); //appendNotification( label , value , image (URL) , priority , buttons, eventCallback ) notifyBox.appendNotification("My Notification text", "Test notification unique ID", "chrome://browser/content/aboutRobots-icon.png", notifyBox.PRIORITY_INFO_HIGH, buttons, testNotificationCallback); }