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

W3Q*_*W3Q 3 javascript jquery google-chrome google-chrome-extension

我现在正在开发一个 Chrome 扩展程序。

我的问题是,当我调用 时chrome.alarms.create(),出现以下错误:

Uncaught TypeError: Cannot read property 'create' of undefined 
Run Code Online (Sandbox Code Playgroud)

我的扩展包中有这些文件:

清单.json

{   
    "manifest_version": 2,
    "name": "Tool",
    "version": "1.0",
    "background": {
        "scripts": ["background.js"]
    },
    "permissions": ["background", "tabs", "webNavigation", "alarms"]
}
Run Code Online (Sandbox Code Playgroud)

myscript.js

chrome.alarms.create("aaa", {"when":Date.now()+5000});

chrome.alarms.onAlarm.addListener(function(alarm){
  console.log("hello");
});
Run Code Online (Sandbox Code Playgroud)

背景.js

chrome.pageAction.onClicked.addListener(function(tab) {
    chrome.tabs.executeScript(null, {file: "myscript.js"});
});
Run Code Online (Sandbox Code Playgroud)

当我打电话时chrome.alarms.create()background.js它工作正常。但是,当我调用 中的函数时myscript.js,它会导致错误。

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

Dan*_*err 5

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

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