微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

一旦用户在我的页面上,我不希望他刷新页面

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

You cannot refresh the page.

>如果用户打开一个新的选项卡,并尝试访问相同的URL在prev tab,他应该得到一个警报

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或多或少不可能。即使您跟踪会话和用户登录,您仍然无法保证您正确检测到第二个标签。例如,也许我有一个窗口打开,然后关闭它。现在我打开一个新窗口。你可能会检测到,作为第二个选项卡,即使我已经关闭了第一个。现在,您的用户无法访问第一个窗口,因为他们关闭它,他们不能访问第二个窗口,因为你拒绝了。

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐