如何在javascript中检测客户端的向后导航?

约旦

请注意:我不是要检测单击后退按钮。我不在乎。

我只想知道他们的页面已加载回导航。如果用户单击后退按钮以建议他们刷新,则我希望在我的应用程序的某个位置向用户显示警告。

编辑:

1)我确实希望页面能够缓存。我们现在生活在一个移动的世界中。不缓存是一个坏习惯。

2)我希望此功能与URL无关。去耦是一个好习惯。

放射状
<script>
if (history.state !== null  &&  +history.state < history.length)
{
    alert("refresh needed");
    history.replaceState(null, "", window.location.href);
}
else
{
    history.replaceState(history.length, "", window.location.href);
}
</script>

页面首次加载时,这会将历史记录的当前长度(这也是页面在历史记录中的位置)存储到历史记录本身中,而无需更改浏览器的位置或以其他方式修改历史记录。再次访问时,它会检查该位置是否在历史记录的末尾-如果不是,则存在一些后退导航。然后,它发出警报并清除存储的位置。

优点:

  • 刷新时不触发警报。

  • 如果以后再次访问同一页面或不同页面中的页面,则不会触发警报。

缺点:

  • 无法区分前向导航和后向导航。即,如果用户返回的页面比该页面更远,然后向前浏览,它仍然会发出警报,因为使用了一些向后导航来到达此处。但是,我认为即使在这种情况下,您也希望用户刷新。

  • 仅警报一次。如果用户随后继续前进和后退,它将不会再次发出警报。由于已经通知用户,因此这可能并不重要。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

服务器如何在服务器/客户端拓扑中检测客户端电源关闭

来自分类Dev

如何在客户端Javascript中隐藏API密钥

来自分类Dev

如何在Docker容器中运行JavaScript客户端?

来自分类Dev

如何在socket.io中检测相同的客户端

来自分类Dev

如何在HTML5 Lightswitch客户端中检测添加或编辑模式?

来自分类Dev

如何检测客户端停止在Firebase中监听?

来自分类Dev

如何检测停止在Firebase中监听的客户端?

来自分类Dev

检测客户端信息Javascript / Jquery

来自分类Dev

在MIO中检测客户端挂断

来自分类Dev

如何在传输客户端或节点客户端中启用文档路由

来自分类Dev

如何在客户端JavaScript中使用打字稿?

来自分类Dev

如何在客户端Javascript或JQuery中访问ViewState变量

来自分类Dev

如何在客户端javascript中访问Passport的req.user变量?

来自分类Dev

如何在JavaScript中在客户端保存/持久化和访问数据?

来自分类Dev

如何在Orbeon Forms的客户端JavaScript中获取元素ID?

来自分类Dev

如何在客户端blazor中动态加载第三方javascript?

来自分类Dev

如何在客户端的javascript /中访问Django返回的json对象?

来自分类Dev

如何在客户端JavaScript中验证HMAC或RSA-SHA签名?

来自分类Dev

如何在Jersey Rest中返回要由客户端执行的javascript代码?

来自分类Dev

如何在javascript中调用客户端ID而不对其进行硬编码

来自分类Dev

如何在JavaScript swagger生成的客户端中设置超时?

来自分类Dev

如何在javascript(客户端)和java(服务器)中完成WebSocket握手?

来自分类Dev

如何在 javascript web 客户端中播放 PCM 流(通过 UDP)?

来自分类Dev

如何在 WPF 上的 WebBrowser 中从 javascript 调用客户端代码?

来自分类Dev

如何在Python中模拟Redis客户端?

来自分类Dev

如何在Meteor中访问客户端IP地址?

来自分类Dev

如何在MongoDB中获得连接的客户端

来自分类Dev

如何在Julia中编写WebSocket客户端?

来自分类Dev

如何在docker alpine中安装mongodb客户端?

Related 相关文章

  1. 1

    服务器如何在服务器/客户端拓扑中检测客户端电源关闭

  2. 2

    如何在客户端Javascript中隐藏API密钥

  3. 3

    如何在Docker容器中运行JavaScript客户端?

  4. 4

    如何在socket.io中检测相同的客户端

  5. 5

    如何在HTML5 Lightswitch客户端中检测添加或编辑模式?

  6. 6

    如何检测客户端停止在Firebase中监听?

  7. 7

    如何检测停止在Firebase中监听的客户端?

  8. 8

    检测客户端信息Javascript / Jquery

  9. 9

    在MIO中检测客户端挂断

  10. 10

    如何在传输客户端或节点客户端中启用文档路由

  11. 11

    如何在客户端JavaScript中使用打字稿?

  12. 12

    如何在客户端Javascript或JQuery中访问ViewState变量

  13. 13

    如何在客户端javascript中访问Passport的req.user变量?

  14. 14

    如何在JavaScript中在客户端保存/持久化和访问数据?

  15. 15

    如何在Orbeon Forms的客户端JavaScript中获取元素ID?

  16. 16

    如何在客户端blazor中动态加载第三方javascript?

  17. 17

    如何在客户端的javascript /中访问Django返回的json对象?

  18. 18

    如何在客户端JavaScript中验证HMAC或RSA-SHA签名?

  19. 19

    如何在Jersey Rest中返回要由客户端执行的javascript代码?

  20. 20

    如何在javascript中调用客户端ID而不对其进行硬编码

  21. 21

    如何在JavaScript swagger生成的客户端中设置超时?

  22. 22

    如何在javascript(客户端)和java(服务器)中完成WebSocket握手?

  23. 23

    如何在 javascript web 客户端中播放 PCM 流(通过 UDP)?

  24. 24

    如何在 WPF 上的 WebBrowser 中从 javascript 调用客户端代码?

  25. 25

    如何在Python中模拟Redis客户端?

  26. 26

    如何在Meteor中访问客户端IP地址?

  27. 27

    如何在MongoDB中获得连接的客户端

  28. 28

    如何在Julia中编写WebSocket客户端?

  29. 29

    如何在docker alpine中安装mongodb客户端?

热门标签

归档