【发布时间】:2021-08-15 19:40:47
【问题描述】:
我尝试的原始代码是这样的:
chrome.alarms.create("check-tabs", { periodInMinutes: .01, when: Date.now() + 500 });
chrome.alarms.onAlarm.addListener(function (alarm) {
if (alarm.name == "check-tabs") {
console.log("check-tabs");
chrome.tabs.query({ active: false, lastFocusedWindow: false }, function (tabs) {
for (i = 0; i < tabs.length; i++) {
if (chrome.alarms.get(tabs[i].url) == undefined) {
chrome.alarms.create(tabs[i].url, { when: Date.now() + 10 * 1000 })
}
}
});
} else {
console.log("not check-tabs, got alarm");
}
});
但是 else 语句会忽略它是错误的警报并显示“不是检查选项卡”。当我将 else 更改为:
else if (alarm.name != "check-tabs")
结果是一样的。 当我将代码更改为:
chrome.alarms.create("check-tabs", { periodInMinutes: .01, when: Date.now() + 500 });
chrome.alarms.onAlarm.addListener(function (alarm) {
if (alarm.name == "check-tabs") {
console.log("check-tabs");
chrome.tabs.query({ active: false, lastFocusedWindow: false }, function (tabs) {
for (i = 0; i < tabs.length; i++) {
if (chrome.alarms.get(tabs[i].url) == undefined) {
chrome.alarms.create(tabs[i].url, { when: Date.now() + 10 * 1000 })
}
}
});
} else if (alarm.name == "random-alarm-name") {
console.log("not check-tabs, got alarm");
}
});
但在我的代码中,会在代码运行时创建多个警报名称,因此名称并不具体。
注意:我知道这不是因为第一个 if 语句创建的警报,我在没有创建该警报的情况下对其进行了测试,结果是一样的。
有谁知道如何解决这个问题?
【问题讨论】:
-
你试过把匿名函数改成实际函数吗?
标签: javascript google-chrome-extension alarm