Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Alerts and Notifications

Basic modal alert

alert.png

alert('hello');

Pop-ups

notify.png

The following code presents a non-modal pop-up, which automatically disappears after an appropriate delay. It uses nsIAlertsService. This works on Windows, Linux and (if Growl is installed) Mac OS X:

function popup(title, text) {
  try {
    Components.classes['@mozilla.org/alerts-service;1']
              .getService(Components.interfaces.nsIAlertsService)
              .showAlertNotification(null, title, text, false, '', null);
  } catch(e) {
    // prevents runtime error on platforms that don't implement nsIAlertsService
  }
}

If you need to display a comparable alert on a platform that doesn't support nsIAlertsService, you can do this:

function popup(title, msg) {
  var image = null;
  var win = Components.classes['@mozilla.org/embedcomp/window-watcher;1']
                      .getService(Components.interfaces.nsIWindowWatcher)
                      .openWindow(null, 'chrome://global/content/alerts/alert.xul',
                                  '_blank', 'chrome,titlebar=no,popup=yes', null);
  win.arguments = [image, title, msg, false, ''];
}

Using notification box

Another way of non-modal notification and further interaction with users is using of XUL elements notificationbox and notification (implicitly). However it is possible to use only buttons and a label there.

notificationbox2.png

var message = 'Another pop-up blocked';
var box = gBrowser.getNotificationBox();
var notification = box.getNotificationWithValue('popup-blocked');
if (notification) {
    notification.label = message;
}
else {
    var buttons = [{
        label: 'Button',
        accessKey: 'B',
        popup: 'blockedPopupOptions',
        callback: null
    }];

    let priority = box.PRIORITY_WARNING_MEDIUM;
    box.appendNotification(message, 'popup-blocked',
                           'chrome://browser/skin/Info.png',
                            priority, buttons);
}

Document Tags and Contributors

Tags: 
 Contributors to this page: kmaglione, mehmetaergun, wbamberg, Sheppy, madarche, Brettz9, zencd
 Last updated by: kmaglione,