window.onbeforeunload侦听器未在Firefox中的选项卡关闭上触发

杰克

问题

我有一个应在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();
});

以下是应该在上述代码中起作用的事件的顺序

  1. 在初始页面加载时,尝试LastUnloaded从localStorage获取如果未检索到任何内容,则显示“从不存储”,否则显示存储的值(应为长整数时间戳记)
  2. 卸载选项卡后,将LastUnloaded使用当前时间戳进行更新这是关闭窗口时在Firefox中似乎不起作用的部分。
  3. 在localStorage中更改后,更新DOM以显示时间戳

演示版

这是示例的代码笔:http ://codepen.io/jakelauer/full/NqRyqQ/

为了对其进行测试,请在两个不同的窗口或选项卡中打开链接。您应注意,刷新两个选项卡时,两个选项卡都会更新以显示相同的时间戳。在Chrome浏览器中,您会注意到,如果关闭一个标签页,则另一个标签页会更新其时间戳。在Firefox中,您会注意到时间戳没有更新

有任何想法吗?提前致谢!

杰克

我最终只使用了onunload,它在任何地方都可以正常工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Ionicframework中$ window和window之间的区别

来自分类Dev

在window.onbeforeunload中添加新行?

来自分类Dev

jQuery-在调用window.open之后在其他窗口/选项卡中触发document.ready()

来自分类Dev

$(window).scroll不触发

来自分类Dev

window.location在新选项卡中打开

来自分类Dev

window.onbeforeunload,关闭浏览器和同步AJAX

来自分类Dev

window.devicePixelRatio更改侦听器

来自分类Dev

使用window.name在同一选项卡中打开电子邮件中的链接

来自分类Dev

当ReactJS中的浏览器选项卡关闭时,如何触发弹出窗口?

来自分类Dev

读取事件侦听器未在本机反应中触发

来自分类Dev

JavaScript:如何在没有window.open()的新选项卡中打开链接?

来自分类Dev

添加一个在用户更改选项卡时将触发的侦听器

来自分类Dev

$ window.unload中的post方法从未在更改URL上调用,关闭选项卡,但在关闭浏览器时运行

来自分类Dev

如何在Chrome扩展程序中的后台消息侦听器中检索活动选项卡?

来自分类Dev

捕获window.onbeforeunload的结果

来自分类Dev

如何使用window.open在特定页面/选项卡中打开链接?

来自分类Dev

如何在ASP.NET C#中的新选项卡(NOT WINDOW)中打开页面?

来自分类Dev

$(window).scroll不触发

来自分类Dev

DOMAttrModified事件侦听器未在Android WebView中触发

来自分类Dev

在Android操作栏选项卡和选项卡侦听器中使用片段时发生ClassCastException

来自分类Dev

进入页面时会触发window.onbeforeunload

来自分类Dev

Angular window.onbeforeunload

来自分类Dev

如何在浏览器或选项卡关闭上实现Session.Abandon()?

来自分类Dev

.WIndow事件侦听器持续多长时间

来自分类Dev

在没有缓存的新选项卡中打开相同的 window.location.origin

来自分类Dev

带有鼠标侦听器的 JTabbedPane 选项卡

来自分类Dev

Android 活动片段侦听器无法单击 tablayout 中的中间选项卡

来自分类Dev

当用户更改选项卡并返回时停止触发事件侦听器

来自分类Dev

window.onload 未在 iOS 上触发

Related 相关文章

  1. 1

    Ionicframework中$ window和window之间的区别

  2. 2

    在window.onbeforeunload中添加新行?

  3. 3

    jQuery-在调用window.open之后在其他窗口/选项卡中触发document.ready()

  4. 4

    $(window).scroll不触发

  5. 5

    window.location在新选项卡中打开

  6. 6

    window.onbeforeunload,关闭浏览器和同步AJAX

  7. 7

    window.devicePixelRatio更改侦听器

  8. 8

    使用window.name在同一选项卡中打开电子邮件中的链接

  9. 9

    当ReactJS中的浏览器选项卡关闭时,如何触发弹出窗口?

  10. 10

    读取事件侦听器未在本机反应中触发

  11. 11

    JavaScript:如何在没有window.open()的新选项卡中打开链接?

  12. 12

    添加一个在用户更改选项卡时将触发的侦听器

  13. 13

    $ window.unload中的post方法从未在更改URL上调用,关闭选项卡,但在关闭浏览器时运行

  14. 14

    如何在Chrome扩展程序中的后台消息侦听器中检索活动选项卡?

  15. 15

    捕获window.onbeforeunload的结果

  16. 16

    如何使用window.open在特定页面/选项卡中打开链接?

  17. 17

    如何在ASP.NET C#中的新选项卡(NOT WINDOW)中打开页面?

  18. 18

    $(window).scroll不触发

  19. 19

    DOMAttrModified事件侦听器未在Android WebView中触发

  20. 20

    在Android操作栏选项卡和选项卡侦听器中使用片段时发生ClassCastException

  21. 21

    进入页面时会触发window.onbeforeunload

  22. 22

    Angular window.onbeforeunload

  23. 23

    如何在浏览器或选项卡关闭上实现Session.Abandon()?

  24. 24

    .WIndow事件侦听器持续多长时间

  25. 25

    在没有缓存的新选项卡中打开相同的 window.location.origin

  26. 26

    带有鼠标侦听器的 JTabbedPane 选项卡

  27. 27

    Android 活动片段侦听器无法单击 tablayout 中的中间选项卡

  28. 28

    当用户更改选项卡并返回时停止触发事件侦听器

  29. 29

    window.onload 未在 iOS 上触发

热门标签

归档