我需要阻止用户刷新页面。
alert();
,但用户可能会忽略警告。答案 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。