Chrome扩展程序抛出"无法将undefined或null转换为object"错误

时间:2017-02-26 08:34:37

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

我正在构建一个扩展程序,该扩展程序将存储来自Chrome选项卡的令牌(一旦您完成加载该特定选项卡,它将获取令牌)。 当运行扩展程序时(通过按下按钮运行它),它应该"得到"令牌并使用它来创建一个ajax调用。

这是对它的作用的简单解释;这是代码:

background.js:

chrome.runtime.onInstalled.addListener(function() {
    chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
        chrome.declarativeContent.onPageChanged.addRules([{
            conditions: [
                new chrome.declarativeContent.PageStateMatcher({
                    pageUrl: { urlContains: 'h' }
                })
            ],
            actions: [new chrome.declarativeContent.ShowPageAction()]
        }]);
    });
});

清单:

{
  "name": "Page action by URL",
  "version": "1.0",
  "description": "Shows a page action for urls which have the letter 'g' in them.",
  "background": {
    "scripts": ["background.js"],
    "persistent": false
  },
  "page_action": {
    "default_icon": "images/icon32.png",
    "default_title": "linkedin URL!",
    "default_popup": "popup.html"
  },
  "content_scripts": [
    {
        "matches": ["<all_urls>"],
        "js" : ["getToken.js"],
        "run_at":"document_end"
    }
  ],
  "permissions": [
    "storage",
    "activeTab",
    "tabs",
    "<all_urls>",
    "cookies",
    "declarativeContent",
    "http://*/*",
    "https://*/*"
  ],
  "icons" : {
    "48" : "images/icon32.png",
    "128" : "images/icon32.png"
  },
  "manifest_version": 2
}

getToken.js:[内容脚本]

if(document.getElementById('HrmsTkn')){
        chrome.storage.local.set({ 'HrmsTkn': document.getElementById('HrmsTkn').value});
        chrome.storage.local.get('HrmsTkn', function(result){
            alert('Got it' + result.HrmsTkn);
        });
   }

和popup.js(按钮激活功能):

$(function () {
    $('#btnGetHtml').click(function () {
        var token;
        chrome.storage.local.get('HrmsTkn', function (items) {
             if(items){
                token = items.HrmsTkn;  
             }
        });
    try {
            alert(token);
        }
    catch(e) {
        }
   });
});

我在devTools中收到以下错误,并且在单击按钮时收到未定义的警告,我还使用StorageAreaExtension检查了扩展的存储区域,其中显示扩展名具有我尝试获取的值。

当我调试它时,在storage.local.get函数中,它会抛出以下错误:

  

延迟要求extension.binding没有设置绑定字段   extensions :: lastError:82:未捕获TypeError:无法转换undefined   或null to object {TypeError:无法将undefined或null转换为   对象

任何想法为什么?过去几天我一直在谷歌上搜索,但没有找到任何可靠的修复方法。

0 个答案:

没有答案