无法从内容脚本调用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

+0

是的,还考虑检查出[chromeps](https://github.com/andersp/chromeps),以帮助简化消息传递。 – anderspitman 2014-09-01 19:07:31