Chrome.identity无法在popup.js中运行?

时间:2017-08-09 01:01:43

标签: javascript google-chrome google-chrome-extension

我正在尝试从我的popup.js(这是一个用于popup.html的脚本)中的chrome.identity.getProfileUserInfo中获取userInfo对象,但是我收到以下错误:

未捕获的TypeError:无法在onload上读取未定义的属性'getProfileUserInfo'

popup.js

onload = function(){

    chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) {
        var url = tabs[0].url;
        console.log(url);
    });

    chrome.identity.getProfileUserInfo(function(userInfo)
    {
        console.log(userInfo)
    });
}

的manifest.json

{
    "manifest_version": 2,

    "name": "QuickLink",
    "description": "This extension allows you to quickly shorten and/or customize your url",
    "version": "1.0",

    "browser_action": 
    {
        "default_icon": "icon.png",
        "default_popup": "popup.html",
        "default_title": "QuickLink"
    },
    "permissions": 
    [
      "background",
      "activeTab",
      "clipboardWrite",
      "tabs",
      "notifications",
      "identity",
      "runtime"
    ]
}

我相信我拥有所有正确的权限,我的标签查询工作正常,但出于某种原因,我无法访问chrome.identity ...任何想法为什么这可能或任何工作所以我可以获取userInfo吗?

感谢任何帮助,谢谢!

2 个答案:

答案 0 :(得分:0)

正如this thread所述,您只能使用后台脚本而不是内容脚本来访问它。

答案 1 :(得分:0)

它可能还需要在清单中提供一个“键”值(如果您试图使其在本地运行并且不起作用)。您可以使用与将扩展程序上载到网上商店时获得的密钥相同的密钥,也可以尝试packing an extension生成一个新密钥(尽管我自己无法使用第二种方法)。