Chrome 不会关闭通知
Posted
技术标签:
【中文标题】Chrome 不会关闭通知【英文标题】:Chrome doesn't close the notification 【发布时间】:2014-05-20 12:01:13 【问题描述】:我目前正在使用此实现来使用基于浏览器的通知:https://developer.mozilla.org/en-US/docs/Web/API/Notification
这就像一个魅力。
if ("Notification" in window)
if(Notification.permission === "granted")
if($('#notify-on-message').is(':checked'))
var notification = new Notification(username + ' : ' + data, 'icon': "/custom/favicon.gif");
if ($('#notify-on-hl').is(':checked'))
var patt = new RegExp("(^|\\W)"+selfusername+"(\\W|$)");
if(patt.test(data))
var notification = new Notification(username + ' highlighted you.', 'icon': "/custom/favicon.gif");
我遇到的主要问题是,在基于 chrome 的浏览器上,通知在 3 秒延迟后不会自行关闭。
它尝试在var notification = ...
之后添加这个
setTimeout(function()
notification.close();
, 2000);
虽然这并没有改变一件事。通知仍然存在。 这是一个已知问题吗?有没有一种简单的方法来解决我不想要的这种行为?
编辑 1: 根据这个页面:https://developer.mozilla.org/en-US/docs/WebAPI/Using_Web_Notifications 这是一个已知问题:
注意:Firefox 和 Safari 会在片刻后自动关闭通知,例如4 秒。
这也可以使用 Notification.close() 方法在 Web 应用程序级别完成,例如使用以下代码:
var n = new Notification("Hi!");
n.onshow = function ()
setTimeout(n.close, 5000);
虽然该代码不起作用。控制台中有错误提示通知没有关闭方法或类似的东西。
【问题讨论】:
【参考方案1】:其实我错了,代码
var message_notification = new Notification("Data");
setTimeout(function()
message_notification.close();
, 3000);
适用于 Firefox 和 Chrome。 (我猜也是 Safari)
【讨论】:
仍然很好奇为什么广告方式 (.onshow
) 不起作用。
可能文档不是最新的,或者我使用的是不同的版本。记不太清了^^"【参考方案2】:
向选项添加标签将在显示新的一次之前关闭活动弹出窗口
var options =
body: msg,
icon: "logo.png",
dir: "ltr",
tag: "group1"
;
【讨论】:
以上是关于Chrome 不会关闭通知的主要内容,如果未能解决你的问题,请参考以下文章
chrome浏览器中选项设置中有一个“关闭Google Chrome 浏览器后继续运行后台应用程序”,这个最好怎么设置?