【发布时间】:2021-05-17 21:05:09
【问题描述】:
我有以下代码:
if (navigator.permissions && navigator.permissions.query) {
navigator.permissions.query({
name: 'clipboard-write'
}).then(function(result) {
if (result.state === 'granted') {
//Do something!
} else{
//Not granted...
}
} else {
//Does not support navigator.permissions
}
这适用于 Safari 和 Chrome。然而,在 Firefox 中,它会抛出此错误:
TypeError: 'name' member of PermissionDescriptor 'clipboard-write' is not a valid value for enumeration PermissionName.
支持navigator.permissions.query,只是不支持clipboard-write。那么,如何查看浏览器是否支持:
navigator.permissions.query({name:'clipboard-write'})
我认为我可以只检查正在使用的浏览器,但我认为必须有更好的方法。
编辑(尝试/捕捉)
我用以下代码尝试了try/catch:
try {
navigator.permissions.query({
name:'clipboard-write'
});
}
catch(error) {
console.log(error);
}
不幸的是,这在 Firefox 中没有 catch。
【问题讨论】:
-
你可以使用
try/catch -
@Barmar 我试过了,我错过了什么吗?
标签: javascript firefox permissions cross-browser navigator