我正在尝试要求当前来源的标签权限。 例如:我在http://stackoverflow.com,点击徽章,然后点击弹出按钮,我应该会出现一个提示框,允许在此标签上进行操作。
我在做什么:
...
"permissions": ["tabs", "contextMenus"],
"optional_permissions": [ "<all_urls>"
],
...
弹出
$('#reqPermision').click(function() { bg.reqPerm(url); });
背景
function reqPerm(url) { chrome.permissions.request({permissions: ['tabs'], origins: [url]}, function (granted) { log('permision:', granted) }); }
我得到了什么:
permissions.request 期间出错:必须在扩展程序清单中列出可选权限。
如果我在“optional_permissions”数组中手动设置了网址(在此例外https://stackoverflow.com/),那么一切正常。
答案 0 :(得分:1)
目前无法做到这一点,您只能为清单中明确列出的网址请求权限。但是,this feature request应该使您尝试执行的操作(在单击浏览器操作时自动授予权限)可行。
答案 1 :(得分:0)
您要尝试执行的操作应该可以。在弹出窗口中,代码应为:
$('#reqPermision').click(function() {
chrome.permissions.request({origins: [url]}, function (granted) {
log('permision:', granted)
});
});
您无需从后台页面调用它。
但是,最好使用webext-domain-permission-toggle之类的模块,因为它将为您处理整个UI。
答案 2 :(得分:-2)
首先是不允许的可选权限//代码中的错误 其次,您需要在可选权限数组中指定选项卡权限 你这样做了
"permissions": ["tabs", "contextMenus"],
"optional_permissions": [ "<all_urls>" ],
你这样做
"permissions": [, "contextMenus"],
"optional_permissions": [ 'tabs' ,<any other permission you want>],