我有一个弹出窗口,我需要在其中以反应方式更新其中的数据。弹出窗口关闭时需要跟踪什么功能或事件?
目前我的代码结构如下:
let BG = browser.extension.getBackgroundPage();
let timer = BG.timer;
function updatePageTime(secondsElapsed) {
const content = document.getElementById("content");
content.innerHTML = "Current Time Spent: " + timer.getTimeElapsed();
}
document.addEventListener("DOMContentLoaded", function () {
timer.subscribe(updatePageTime);
});
document.addEventListener("unload", function () {
timer.unsubscribe(updatePageTime);
});
问题是卸载和beforeunload不会在弹出窗口关闭时触发,因此我无法停止对不存在的DOM的更新。
答案 0 :(得分:2)
不幸的是,我没有看到卸载是在窗口而不是文档上定义的。只需将document.addEventListener("unload"
更改为window.addEventListener("unload"
即可解决此问题。