以下是我的清单
{
"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未定义。 如果我错过了什么,请告诉我。
答案 0 :(得分:1)
chrome.history
,您需要将该调用移至background.js
并使用Message Passing之类的内容传输数据。
内容脚本只能访问以下扩展API:
- 扩展名(getURL,inIncognitoContext,lastError,onRequest,sendRequest)
- I18N
- 运行时(connect,getManifest,getURL,id,onConnect,onMessage,sendMessage)
- 存储