无法从内容脚本调用chrome.alarms.create()

时间:2014-08-31 10:10:06

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

我正在开发Chrome扩展程序。

我的问题是,当我致电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中调用该函数时,会导致错误。

原因是什么以及如何解决此问题?

1 个答案:

答案 0 :(得分:4)

您无法从内容脚本访问大多数Chrome API。您需要使用Messaging API将消息发送到后台页面,然后可以调用Alarms API。

https://developer.chrome.com/extensions/messaging https://developer.chrome.com/extensions/content_scripts