权限:revoke() 方法

注意:此功能在Web Workers中可用。

已弃用:不再推荐使用此功能。虽然某些浏览器可能仍然支持它,但它可能已从相关的 Web 标准中删除,或者正在被删除,或者仅出于兼容性目的而保留。避免使用它,并尽可能更新现有代码;请参阅本页面底部的兼容性表格以指导您的决策。请注意,此功能可能随时停止工作。

revoke()Permissions 接口的方法,它将当前设置的权限恢复到其默认状态,通常为 prompt。此方法在全局 Permissions 对象 navigator.permissions 上调用。

此方法已从主要权限 API 规范中删除,因为它用例不明确。权限由浏览器管理,当前的权限模型不涉及网站开发者能够强制请求或撤销权限。浏览器已在首选项后面发布了此 API,但它不太可能进入标准轨道。有关更多上下文,请参阅删除 permissions.revoke() 的原始讨论

语法

js
revoke(descriptor)

参数

descriptor

基于 PermissionDescriptor 字典的对象,用于设置操作选项,该选项由一个逗号分隔的名称-值对列表组成。可用的选项是

name

要查询其权限的 API 的名称。每个浏览器都支持一组不同的值。您可以查阅Firefox 值Chromium 值WebKit 值

userVisibleOnly

(仅限推送,Firefox 不支持 - 请参阅下面的浏览器兼容性部分) 指示您是否要为每条消息显示通知或能够发送静默推送通知。默认值为 false

sysex (仅限 MIDI)

指示您是否需要和/或接收系统独占消息。默认值为 false

注意:从 Firefox 44 开始,NotificationsPush 的权限已合并。如果授予权限(例如,由用户在相关的权限对话框中授予),navigator.permissions.query() 将对 notificationspush 都返回 true

注意:persistent-storage 权限允许来源使用持久性框(即 持久性存储)进行存储,根据 Storage API

返回值

一个 Promise,它使用 PermissionStatus 对象调用其 fulfilled 处理程序,以指示请求的结果。

异常

TypeError

以某种方式检索 PermissionDescriptor 信息失败,或者权限不存在或当前不受支持(例如 midi 或带 userVisibleOnlypush)。

示例

应用程序可以使用此函数请求撤销其自身的 Geolocation API 权限。

js
function revokePermission() {
  navigator.permissions.revoke({ name: "geolocation" }).then((result) => {
    report(result.state);
  });
}

规范

规范
放弃权限
# dom-permissions-revoke

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。