chrome.history在自定义扩展中未定义

时间:2016-12-14 06:09:43

标签: google-chrome google-chrome-extension google-chrome-devtools

以下是我的清单

{
    "manifest_version": 2,
    "name": "Print History",
    "version": "0.1",
    "permissions": ["history", "tabs"],
    "content_scripts": [
        {
        "matches": [
        "<all_urls>"
        ],
        "js": ["content.js"]
        }
    ],
    "browser_action":{
    },
    "background": {
        "scripts": ["background.js"]
    }
}

以下是我的背景js:

chrome.browserAction.onClicked.addListener(function(tab) {
  // Send a message to the active tab

    chrome.tabs.sendMessage(tab.id, {"message": "clicked_browser_action"});

});

以下是内容js:

chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    if( request.message === "clicked_browser_action" ) {
        alert("hello");
     chrome.history.getVisits({"url": "www.facebook.com"},
        function (visits) {
            if (visits.length >= 0) {
                chrome.tabs.sendMessage(sender.tab.id, {
                    "message": "clicked_browser_action"
                });
            };
        });
    }
  }
);

警报打印在屏幕上,我在控制台中看到一个错误,名为undefined.getVisits。出于某种原因,chrome.history未定义。 如果我错过了什么,请告诉我。

1 个答案:

答案 0 :(得分:1)

无法在内容脚本中访问

chrome.history,您需要将该调用移至background.js并使用Message Passing之类的内容传输数据。

Appendix

  

内容脚本只能访问以下扩展API:

     
      
  • 扩展名(getURL,inIncognitoContext,lastError,onRequest,sendRequest)
  •   
  • I18N
  •   
  • 运行时(connect,getManifest,getURL,id,onConnect,onMessage,sendMessage)
  •   
  • 存储
  •