permissions.contains()
检查扩展是否具有给定 permissions.Permissions
对象中列出的权限。
Permissions
参数可以包含 origins
属性(一个 主机权限 数组),或 permissions
属性(一个 API 权限 数组),或者两者兼而有之。
这是一个异步函数,它返回一个 Promise
。只有当扩展当前拥有所有给定权限时,该 promise 才会用 true
履行。对于主机权限,如果扩展的权限 模式匹配 origins
中列出的权限,则认为它们匹配。
语法
js
let getContains = browser.permissions.contains(
permissions // Permissions object
)
参数
返回值
一个 Promise
,如果扩展已经拥有 permissions
参数中列出的所有权限,则会用 true
履行,否则用 false
履行。
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
示例
js
// Extension permissions are:
// "webRequest", "tabs", "*://*.mozilla.org/*"
let testPermissions1 = {
origins: ["*://mozilla.org/"],
permissions: ["tabs"],
};
const testResult1 = await browser.permissions.contains(testPermissions1);
console.log(testResult1); // true
let testPermissions2 = {
origins: ["*://mozilla.org/"],
permissions: ["tabs", "alarms"],
};
const testResult2 = await browser.permissions.contains(testPermissions2);
console.log(testResult2); // false, "alarms" doesn't match
let testPermissions3 = {
origins: ["https://mdn.org.cn/"],
permissions: ["tabs", "webRequest"],
};
const testResult3 = await browser.permissions.contains(testPermissions3);
console.log(testResult3); // true: "https://mdn.org.cn/", matches: "*://*.mozilla.org/*"
let testPermissions4 = {
origins: ["https://example.org/"],
};
const testResult4 = await browser.permissions.contains(testPermissions4);
console.log(testResult4); // false: "https://example.org/", `origins` doesn't match
扩展示例
注意:此 API 基于 Chromium 的 chrome.permissions
API。