首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Webextension警报未启动

问Webextension警报未启动
EN

Stack Overflow用户
提问于 2017-02-27 22:29:48
回答 1查看 419关注 0票数 0

我刚开始写外接程序。我正试着在按下一个按钮后得到一个运行X分钟的函数。我正在跟踪此MDN引用,并将其与这个例子副词进行比较,但看不到我的错误。

到目前为止,我有一个example.js,它看起来像:

代码语言:javascript
复制
var ok = document.createElement('button');
var okText = document.createTextNode("OK");
ok.appendChild(okText);  
ok.onclick = startTimer; 
document.body.appendChild(ok)          

function startTimer(event) {
    event.preventDefault();
    console.log('click!')  
    browser.alarms.clearAll();
    browser.alarms.create("Remind", {delayInMinutes: 1});
    return false;        
}                        

browser.alarms.onAlarm.addListener(ring);                                                                                                                                                                                         

function ring(alarmInfo) {
    console.log("RING!");
}

到目前为止,我在日志中得到了“点击”通知,但是得到了“铃声”!从来没有发生过,而我希望看到它出现在1分钟后。

一些更多的信息,如注释所示:我已经写了一个副词,并通过在插件目录中运行web-ext run来运行它。manifest.json是:

代码语言:javascript
复制
{
"manifest_version": 2, 
"name": "Example",
"version": "0.1",
"description": "Example",
 "icons": {
 "48": "icons/example-48.png",
 "96": "icons/example-96.png"   },
 "content_scripts": [
   {
   "matches": ["*://*.google.com/*"],
   "js": ["example.js"],
   "css": ["example.css"]
    }   ],
 "permissions": ["alarms"],
   "run_at": "document_start"   
}

浏览器控制台显示了我所在站点的大量输出(这里是google.com),example.js的唯一输出是click! example.js:57:2

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-27 23:11:13

问题是,内容脚本不能像后台脚本那样访问更多的API(参见脚本)。具体来说,他们无法访问alarm API。

但是,他们可以使用setTimeout或setDelay,或者向单独的后台脚本发送消息来处理警报。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42496966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档