javascript - 使用 jQuery/Javascript 防止任何形式的页面刷新

标签 javascript jquery refresh

一旦用户进入我的页面,我不希望他刷新页面。

  1. 任何时候,用户点击 F5 或顶部的刷新按钮。他应该得到一个警告说

    You cannot refresh the page.

  2. 此外,如果用户打开一个新选项卡并尝试访问上一个选项卡中的相同 url,他应该会收到警报

    You cannot open same page in 2 tabs

无论如何,我可以使用 JavaScript 或 jQuery 来做到这一点吗?第一点非常重要。

最佳答案

#1 可以通过window.onbeforeunload 实现。

例如:

<script type="text/javascript">
    window.onbeforeunload = function() {
        return "Dude, are you sure you want to leave? Think of the kittens!";
    }
</script>

用户将收到消息提示,并可以选择留在页面上或继续前进。这变得越来越普遍。如果您在键入帖子时尝试离开页面,Stack Overflow 会执行此操作。你不能完全阻止用户重新加载,但如果他们这样做,你可以让它听起来真的很可怕。

#2 或多或少是不可能的。即使您跟踪了 session 和用户登录,您仍然无法保证正确检测到第二个选项卡。例如,也许我打开一个窗口,然后将其关闭。现在我打开一个新窗口。您可能会将其检测为第二个选项卡,即使我已经关闭了第一个选项卡。现在您的用户无法访问第一个窗口,因为他们关闭了它,并且他们无法访问第二个窗口,因为您拒绝了他们。

事实上,我银行的在线系统非常努力地尝试做 #2,并且上述情况一直在发生。我通常必须等到服务器端 session 到期才能再次使用银行系统。

关于javascript - 使用 jQuery/Javascript 防止任何形式的页面刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3527041/

相关文章:

javascript - 如果显示的 tr 数量小于 n,则隐藏 tbody

javascript - jQuery 使用页面滚动移动一个 div

jquery - 为什么jquery ajax调用刷新后dom不同步?

javascript - 来自 MongoDB 键的动态频率图

javascript - 管道文件时如何使javascript正则表达式匹配所有行

javascript - 从 select 中检索选定的文本

javascript - 检测浏览器是否正在执行重定向

javascript - 为什么我的 ajax 调用不起作用?

javascript - 使用 javascript 将图像附加到类型文件的输入

python - python folium(map.html文件)与dash应用程序集成后如何刷新?