Basic modal alert
alert('hello');
Pop-ups
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.
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); }