代码如下:
class mNotice {
// 征得用户同意发送通知的相关代码...
// 发送通知
send = (title, body = "") => {
const n = new Notification(title, body ? { body } : {});
n.onclick = function(e){
console.log(e, 1);
};
n.onerror = function(e){
console.log(e, 2);
};
n.onshow = function(e){
console.log(e, 3);
};
n.onclose = function(e){
console.log(e, 4);
};
};
}
const notice = new mNotice();
notice.send("我是标题", "我是内容"); // 输出 3 4
通知可以正常发送,show
和close
事件可以正常触发,但是click
事件不能触发(我当然有点击通知,但点击完后就直接执行默认事件了...)。
我也尝试使用以下写法,但都没有奏效:
// 使用addEventListener
n.addEventListener('click', function(e){
console.log(e, 1);
});
// 阻止默认事件
n.onclick = function(s, e){
e.preventDefault();
console.log(e, 1);
};
求问这是什么原因,如何解决?浏览器版本是PC chrome 80
。