[英]Chrome doesn't close the notification
我目前正在使用此实现来使用基于浏览器的通知:
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 = ...
后添加它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);
}
虽然该代码不起作用。 控制台中出现错误,指出通知没有close方法或类似的方法。
实际上我错了,代码
var message_notification = new Notification("Data");
setTimeout(function(){
message_notification.close();
}, 3000);
适用于Firefox和Chrome。 (我猜也是Safari)
在该选项中添加标签将关闭活动弹出窗口,然后再显示新的一次
var options = {
body: msg,
icon: "logo.png",
dir: "ltr",
tag: "group1"
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.