javascript – 删除HTML5通知权限

您可以通过运行以下命令提示用户允许或拒绝来自浏览器的桌面通知
Notification.requestPermission(callback);

但是可以通过代码删除该权限吗?我们希望用户可以选择切换通知.这可以通过JavaScript实现,还是我们需要在其他地方保存该选项?

解决方法

不,您的脚本无法以编程方式放弃显示通知的权限.除了requestPermission之外,API specification没有任何与权限相关的功能. (当然,浏览器可能有一个选项菜单,允许用户撤消域的权限,但这是一个浏览器级选项,而不是网站级选项.例如,在Chrome中,您可以看到此选项菜单单击地址栏左侧的图标.)

如果您不想显示通知,只需不要调用通知.

您可以在条件内将所有调用包装到新的通知中:

if(notifications_allowed) {
    new Notification(...);
}

或者,您可以重写Notification构造函数以包含contiditional并根据需要调用原始Notification:

(function() {
    var oldNofitication = Notification;
    Notification = function() {
        if(notifications_allowed) {
            oldNotification.apply(this,arguments);
        }
    }
})();

如果您使用供应商前缀的构造函数函数(例如,webkitNotifications.createNotification),那么您还需要重写每个构造函数函数,以条件取决于您的options变量.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...