我的 chrome 扩展中有一个通知功能,它由后台页面 (background.html) 管理。此页面调用 setNotificationDelay() 函数,该函数基本上是删除前一个计时器,然后是 setTimeOut。
function setNotificationDelay() {
clearNotificationTimer();
newDelay = getNotificationDelay()
notificationTimer = setTimeout(showNotification, newDelay);
}
}
我还有一个 options.html 页面,它允许配置通知时间。我想在修改配置时修改后台超时,但是当我从选项页面调用 setNotificationDelay() 时它不起作用,我认为这是因为计时器的范围附加到父页面。
如果我让选项页面打开,则会触发超时,如果我关闭它,则通知永远不会发生。
如何将此计时器附加到背景页面?有没有更好的方法来实现它?
谢谢。
编辑: chrome.extension 具有 getBackground 页面方法,该方法返回背景页面的窗口对象:
function setNotificationDelay() {
clearNotificationTimer();
newDelay = getNotificationDelay()
notificationTimer = chrome.extension.getBackgroundPage().setTimeout(showNotification, newDelay);
}
}