无法从内容脚本调用chrome.alarms.create()
问题描述:
我正在开发Chrome扩展。无法从内容脚本调用chrome.alarms.create()
我的问题是,当我打电话chrome.alarms.create()
,我得到以下错误:
Uncaught TypeError: Cannot read property 'create' of undefined
我有我的扩展包,这些文件:
manifest.json的
{
"manifest_version": 2,
"name": "Tool",
"version": "1.0",
"background": {
"scripts": ["background.js"]
},
"permissions": ["background", "tabs", "webNavigation", "alarms"]
}
myscript.js
个chrome.alarms.create("aaa", {"when":Date.now()+5000});
chrome.alarms.onAlarm.addListener(function(alarm){
console.log("hello");
});
background.js
chrome.pageAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript(null, {file: "myscript.js"});
});
当我打电话chrome.alarms.create()
在background.js
,它工作正常。 但是,当我调用myscript.js
中的函数时,会导致错误。
原因是什么?如何解决这个问题?
答
您无法从内容脚本访问大多数Chrome API。您需要使用Messaging API将消息发送到后台页面,然后才能调用Alarms API。
https://developer.chrome.com/extensions/messaging https://developer.chrome.com/extensions/content_scripts
是的,还考虑检查出[chromeps](https://github.com/andersp/chromeps),以帮助简化消息传递。 – anderspitman 2014-09-01 19:07:31