gpt4 book ai didi

javascript - Webextension Firefox 警报未触发

转载 作者:行者123 更新时间:2023-12-03 04:54:26 27 4
gpt4 key购买 nike

我是编写附加组件的新手。我试图让一个函数在按下按钮后运行 X 分钟。我正在关注this MDN reference ,并与 this example addon 进行比较,但看不到我的错误。

到目前为止,我有一个 example.js ,如下所示:

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!");
}

到目前为止,我在日志中收到“点击”通知,但收到“RING!”永远不会发生,而我希望看到它在 1 分钟后出现。

<小时/>

根据评论,还有更多信息:我编写了一个插件,并通过在插件目录中运行 web-ext run 来运行它。 manifest.json 是:

{
"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

最佳答案

问题是内容脚本无法像后台脚本那样访问尽可能多的 API(请参阅 https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts )。具体来说,他们无法访问alarm API。

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

关于javascript - Webextension Firefox 警报未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42496966/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com