Javascript Notification.requestPermissions-未显示任何对话框;“自动阻止”;Chrome中的消息

Javascript Notification.requestPermissions-未显示任何对话框;“自动阻止”;Chrome中的消息,javascript,google-chrome,notifications,html5-notifications,Javascript,Google Chrome,Notifications,Html5 Notifications,我正在使用SSL在localhost上测试HTML5通知。我已经重置了站点的Chrome设置(通过单击URL框中的锁定图标-“站点设置”),并且双击通知设置设置为“询问(默认)” 下面是我的代码: if (Notification.permission !== "granted") { Notification.requestPermission(); } 但一旦代码运行,将不显示任何权限弹出窗口,相反,我会在地址栏中看到一个锁图标,上面写着“通知被阻止”: 尝试

我正在使用SSL在
localhost
上测试HTML5通知。我已经重置了站点的Chrome设置(通过单击URL框中的锁定图标-“站点设置”),并且双击通知设置设置为“询问(默认)”

下面是我的代码:

if (Notification.permission !== "granted") {
    Notification.requestPermission();
}
但一旦代码运行,将不显示任何权限弹出窗口,相反,我会在地址栏中看到一个锁图标,上面写着“通知被阻止”:

尝试向代码添加
。然后()
承诺-结果相同。使用Chrome版本85.0.4183.102。他们改变了什么吗

我确实看到一些博客文章提到,如果用户关闭弹出窗口三次,Chrome会自动禁用通知,但我确实重置了设置,是吗


另外,如果我刷新页面并再次请求权限-我在控制台中看到这一点
“通知权限已被阻止,因为用户多次忽略权限提示。”
等等,如果我甚至没有看到提示,我怎么能忽略它呢?

好的,那么在我的头撞了墙一个小时后,我找到了原因

地址栏上的小锁图标是新的“通知提示”,女士们先生们

我试图保持冷静,但是。。。你是认真的吗


另外,我们都明白这背后的意图是防止人们滥用这些弹出窗口。但是,更好的方法是检查代码是否在用户触发的上下文中运行(例如,响应单击),如果是,请保持原样。

也许更愿意在开发人员那里解决您的“FFS”,他们首先需要采取这种措施:-)@CBroe touche,我明白您的意思。但感觉上合法的开发者正在为一小部分垃圾邮件发送者的行为买单。我们正在开发一个不能从公共互联网上访问的B2B应用程序:(“但感觉合法的开发者在为有限一群垃圾邮件发送者的行为买单。”-是的,但不是总是这样吗?浏览器供应商正在追赶限制很多东西的潮流,这些东西有合法的应用程序,但只是被滥用得太频繁了,比如说带声音的视频自动播放。