使用 Google Chrome 扩展程序警报时,如果设置了警报并且 Chrome 关闭并在警报时间到期后重新打开,则警报将响起。
我怎样才能阻止这个?
这是一个小代码示例来解释我的意思。
/*
If we perform Browser Action to create alarm, then
close the browser, wait about 2 minutes for the alarm to expire
and then reopen the browser, the alarm will go off and the DoSomething
function will get called twice, once by the onStartup event and once
by the onAlarm event.
*/
chrome.browserAction.onClicked.addListener(function (tab) {
chrome.alarms.create('myAlarm', {
delayInMinutes : 2.0
});
});
chrome.alarms.onAlarm.addListener(function (alarm) {
console.log('Fired alarm!');
if (alarm.name == 'myAlarm') {
createListener();
}
});
chrome.runtime.onStartup.addListener(function () {
console.log('Extension started up...');
DoSomething();
});
function DoSomething() {
alert('Function executed!');
}
因此,如果您阅读我的代码示例顶部的注释,您将看到会发生什么。
不过,我想要的是,如果浏览器关闭,警报会被清除,因为我希望DoSomething
函数仅在浏览器刚刚启动时由onStartup
事件执行,并让警报DoSomething
仅在浏览器启动后执行功能,并且我的代码创建了一个新警报。
我从不希望在浏览器关闭后留下警报,然后onAlarm
在重新打开浏览器时执行。
怎样才能做到这一点?