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