问题
我有一个应在window.onbeforeunload上运行的函数。在Chrome浏览器中,此功能可以正常运行,并在关闭或刷新选项卡或窗口时运行。但是,在Firefox中,它只能刷新运行,而不能关闭。
代码
这是一个例子:
var onStorageUpdate = function(){
var lastUnloaded = localStorage.getItem("LastUnloaded");
if(lastUnloaded === null){
$("div").text("Never stored");
}
else{
$("div").text(lastUnloaded);
}
};
onStorageUpdate();
window.addEventListener("beforeunload", function(){
var now = Date.now();
localStorage.setItem("LastUnloaded", now);
});
window.addEventListener("storage", function(){
onStorageUpdate();
});
以下是应该在上述代码中起作用的事件的顺序:
LastUnloaded
从localStorage获取。如果未检索到任何内容,则显示“从不存储”,否则显示存储的值(应为长整数时间戳记)LastUnloaded
使用当前时间戳进行更新。这是关闭窗口时在Firefox中似乎不起作用的部分。演示版
这是示例的代码笔:http ://codepen.io/jakelauer/full/NqRyqQ/
为了对其进行测试,请在两个不同的窗口或选项卡中打开链接。您应注意,刷新两个选项卡时,两个选项卡都会更新以显示相同的时间戳。在Chrome浏览器中,您会注意到,如果关闭一个标签页,则另一个标签页会更新其时间戳。在Firefox中,您会注意到时间戳没有更新。
有任何想法吗?提前致谢!
我最终只使用了onunload,它在任何地方都可以正常工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句