I have web notifications running in Firefox in conjunction with events sent by the DOM server. Unfortunately, notifications disappear after about two to three seconds. I prefer the Chrome method to leave the message visible (with a maximum of three displayed at any given time) until the user clicks on the notification.
Here is what I have ...
window.onload = function(e) { if ('EventSource' in window) {//Server Sent DOM Events var sse = new EventSource('../mail/sse/'); if (Notification.permission && Notification.permission!='granted') { Notification.requestPermission(function(status) {if (Notification.permission!=status) {Notification.permission = status;}}); } else if (window.webkitNotifications && window.webkitNotifications.checkPermission()!=0) { document.getElementsByTagName('body')[0].addEventListener('click',function() {window.webkitNotifications.requestPermission();},false); } es.onclick = function(sse) { // } //doesn't work es.onclose = function(es) {es.preventDefault();} es.onmessage = function(sse) { if ('Notification' in window) { if (window.webkitNotifications) { var n = webkitNotifications.createNotification('images/stuff.gif','New Email Message(s)',sse.data); n.show(); n.onshow = function() {setTimeout(notification.close,15000);} } else { var n = new Notification('New Email Message(s)',{icon:'images/stuff.gif',body:sse.data}); } } } } }
source share