Javascript 浏览器通知onclick事件不存在';不要在铬上被解雇

Javascript 浏览器通知onclick事件不存在';不要在铬上被解雇,javascript,notifications,Javascript,Notifications,我正在创建浏览器通知,它在firefox和edge中非常有效。但由于某些原因,它在chrome中不起作用。我可以看到通知,但当我点击通知时,它不会被触发。这是我的代码: function notifyMe(text) { if (Notification.permission !== "granted") Notification.requestPermission(); else { var notification = new Notifica

我正在创建浏览器通知,它在firefox和edge中非常有效。但由于某些原因,它在chrome中不起作用。我可以看到通知,但当我点击通知时,它不会被触发。这是我的代码:

function notifyMe(text) {
    if (Notification.permission !== "granted")
        Notification.requestPermission();
    else {
        var notification = new Notification('Notification title', {               
            body: text,
            requireInteraction: true     
        });
        notification.onclick = function (event) {
            alert("clicked");
            event.preventDefault(); 
            console.log('Notification clicked.');
        } 

    }      
}

所以我的问题是,为什么notificaion.onclick不会在chrome中触发

您可能正在单击“关闭”按钮,它不会触发“单击”事件,请尝试单击“关闭”按钮以外的任何按钮,尝试使用“关闭”事件

function notifyMe(text) {
    if (Notification.permission !== "granted")
        Notification.requestPermission();
    else {
        var notification = new Notification('Notification title', {               
            body: text,
            requireInteraction: true     
        });
        notification.onclick = function (event) {
            alert("onClick!");
            event.preventDefault(); 
            console.log('Notification clicked.');
        } 
        notification.onclose = function (event) {
            alert("onClose!");
            event.preventDefault(); 
            console.log('Notification clicked.');
        } 
    }      
}
或者尝试使用
EventListener

function notifyMe(text) {
    if (Notification.permission !== "granted")
        Notification.requestPermission();
    else {
        var notification = new Notification('Notification title', {               
            body: text,
            requireInteraction: true     
        });
        notification.addEventListener("click", function (event) {
            alert("onClick!");
            event.preventDefault(); 
            console.log('Notification clicked.');
        } )
        notification.addEventListener("close", function (event) {
            alert("onClose!");
            event.preventDefault(); 
            console.log('Notification clicked.');
        } )

    }      
}

关闭按钮工作。如果单击“关闭”,则会关闭通知。但如果我点击其他地方,它会打开一个新窗口。而且它只有在铬合金中才能做到这一点。在firefox和edge中,它会显示一个警报,并在控制台中记录一条消息。当我调试并在notification.onclick中放置断点时,它不会进入函数内部(在chrome中,在其他浏览器中,它会按预期工作)。谢谢你的回复。非常奇怪,因为我在这里测试过,除了关闭按钮,它什么都能用,包括添加关闭按钮事件,我必须添加事件“onclose”,我会更新答案你在谷歌chrome上测试过吗?在edge和firefox中,它是有效的。Chrome是一个问题。我使用了你的代码,它是一样的。@brusli是的,我已经在Chrome上测试过,尝试清理你的js,或者只是在控制台上按F12键执行,它现在可以工作了。仍然不确定问题出在哪里,但现在它起作用了。