禁用页面刷新

时间:2011-12-03 16:10:35

标签: javascript

我需要阻止用户刷新页面。

  1. 我的脚本编写方式使得不需要“向前”或“向后”移动。
  2. 但是,如果刷新页面,“一切”从头开始。
    • 在页面刷新之前保存所有内容并在之后恢复它们并不理想。
  3. 为了防止页面刷新,我可以使用alert();,但用户可能会忽略警告。
  4. 任何其他选择...... ???

4 个答案:

答案 0 :(得分:1)

JavaScript无法阻止用户离开页面(刷新计数为离开页面),因为它会违反用户的......无论如何......无论如何,这是不可能的。 (即使您尝试,浏览器也会有工具轻松绕过您可能编写的任何脚本)。

答案 1 :(得分:0)

但是,如果您将使用HTML5中的pushState / replaceState直观地存储您的webapp的状态(并将服务器设置为从所有这些URL中提供服务),即使刷新后您也可以将用户导航到应用的正确位置

答案 2 :(得分:0)

无法阻止用户刷新页面。如果您不需要保留太多数据,可以输入URL(site.com/page.php?sort=2&x=3&y=4)。

如果您需要大量数据,则只能希望用户不刷新页面。正如您所指出的,一种方法是显示一个对话框。

哦,猜猜你也可以使用AJAX存储数据服务器端,并在考虑到最后状态的情况下向用户提供页面。

答案 3 :(得分:0)

您可以做的最好的事情是通过window.onBeforeUnload事件处理程序请求确认。

window.addEventListener('beforeUnload', function(e) {
  var dialogText = 'Dialog text here';
  e.returnValue = dialogText;
  return dialogText;
});

请注意,处理函数应将字符串值赋给Event对象的returnValue属性,并返回相同的字符串。 有关详细信息,请参阅MDN WindowEventHandlers.onbeforeunload