2

我正在尝试要求当前来源的选项卡权限。例如:我在http://stackoverflow.com上,单击徽章,然后单击弹出窗口中的按钮,我应该得到一个提示框以允许在此选项卡上进行操作。

我在做什么:

  • 显现
    ...
    “权限”:[“选项卡”,“上下文菜单”],
    “可选权限”:[ "<all_urls>"],
    ...
    
  • 弹出窗口

    $('#reqPermision').click(function()
    {
        bg.reqPerm(url);
    });

  • 背景

    函数 reqPerm(url)
    {
        chrome.permissions.request({permissions: ['tabs'], origins: [url]}, function (granted)
        {
            日志('权限:',授予)
        });
    }

我得到了什么:

permissions.request期间出错:扩展清单中必须列出可选权限。

如果我在“optional_permissions”数组中手动​​设置 url (在这个例子中。https://stackoverflow.com/,一切都按我的需要工作。

4

3 回答 3

0

目前这是不可能的,您只能请求清单中明确列出的 URL 的权限。但是,此功能请求应该使您尝试执行的操作(单击浏览器操作时自动授予权限)可行。

于 2012-04-25T20:01:46.323 回答
0

你正在尝试做的应该工作。在弹出窗口中,代码应为:

$('#reqPermision').click(function() {
    chrome.permissions.request({origins: [url]}, function (granted) {
        log('permision:', granted)
    });
});

您无需从后台页面调用它。


但是,最好使用webext-domain-permission-toggle之类的模块,因为它会为您处理整个 UI。

于 2019-08-03T08:05:28.423 回答
-2

首先,不允许的可选权限//代码中的错误其次,您需要在执行此操作的可选权限数组中指定选项卡权限

"permissions": ["tabs", "contextMenus"], "optional_permissions": [ "<all_urls>" ],

你这样做

"permissions": [, "contextMenus"], "optional_permissions": [ 'tabs' ,<any other permission you want>],

第三你应该在它请求许可之前检查它没有被授予然后你应该请求它参考谷歌可选许可

于 2014-09-16T05:31:33.030 回答