代码之家  ›  专栏  ›  技术社区  ›  John

阻止Firefox Web通知自动关闭

  •  3
  • John  · 技术社区  · 11 年前

    我已经将Web通知与服务器发送的DOM事件结合在Firefox中使用。不幸的是,通知在大约两三秒钟后就消失了。我更喜欢Chrome的方法,即在用户点击通知之前,保持消息可见(在任何给定时间最多显示三条)。

    这是我的。。。

    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});
        }
       }
      }
     }
    }
    
    1 回复  |  直到 11 年前
        1
  •  2
  •   John    11 年前

    这是Firefox中的一个已知错误。。。

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