3

Server Sent DOM イベントと組み合わせて、Firefox で動作する Web 通知を取得しました。残念ながら、通知は約 2 ~ 3 秒後に消えます。ユーザーが通知をクリックするまで、メッセージを表示したままにしておく Chrome の方法を好みます (常に最大 3 つ表示されます)。

これが私が持っているものです...

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});
    }
   }
  }
 }
}
4

1 に答える 1

2

Firefoxの既知のバグです...

https://bugzilla.mozilla.org/show_bug.cgi?id=875114

于 2013-10-02T19:13:19.240 に答える