JavaScript-我如何告诉浏览器Chrome、Firefox、Safari允许我禁用刷新按钮?
我的逻辑应用程序正在运行,需要存储JavaScript-我如何告诉浏览器Chrome、Firefox、Safari允许我禁用刷新按钮?,javascript,jquery,google-chrome,safari,opera,Javascript,Jquery,Google Chrome,Safari,Opera,我的逻辑应用程序正在运行,需要存储var算法toapply=1或etc 其中我的每个值都指定了相对算法。主要的问题是,当测试人员点击浏览器刷新按钮时,我的所有应用程序逻辑都会崩溃 algorithmToApply = 1 ; // Thinking algorithmToApply = 2 ; // Waiting algorithmToApply = 11 ; // Downloading algorithmToApply = 100 ; // Booting algorithmToApply
var算法toapply=1或etc
其中我的每个值都指定了相对算法。主要的问题是,当测试人员点击浏览器刷新按钮时,我的所有应用程序逻辑都会崩溃
algorithmToApply = 1 ; // Thinking
algorithmToApply = 2 ; // Waiting
algorithmToApply = 11 ; // Downloading
algorithmToApply = 100 ; // Booting
algorithmToApply = 900 ; // Kernel prepare
algorithmToApply = 0 ; // User refresh button is a BUG
如何使用JavaScript请求浏览器(Opera或Chrome,可选Firefox/Safari)来限制用户不能单击刷新(但他们总是可以关闭或关闭我的浏览器实例)
这可能吗?如果是,怎么做
跟进:(尽我们所能)
这是不可能的
但是,您可以在卸载之前添加一个提示确认的侦听器:
var algorithmToApply = 0;
window.onbeforeunload = function() {
if (algorithmToApply !== 0) { /* Anything ..*/
return 'A task is pending. Do you really want to leave?';
}
};
你想错了。不是“如何禁用刷新按钮”,而是“如何在页面刷新之间保留信息?”-您是否考虑过使用localStorage/sessionStorage来跟踪状态,以便用户刷新页面时,它会从停止的位置恢复?不,您不应该依赖于禁用浏览器的刷新按钮。如果您依赖于此,那么您应该重新考虑您的应用程序逻辑及其结构。@nnnnnnnn不幸的是,不是。但是,大多数浏览器都支持这一点,这是防止导航离开的唯一方法。Opera将添加对beforeunload事件的支持,我希望它在Opera 12 final之后的某个版本中出现。@hallvors您能为您的声明发布一个参考吗?我找不到。你可以相信我的话:-)我在Opera工作,根据bug tracker的说法,我从2004年3月开始关注这个问题。@c69它将被添加,因为它有一些(有限的)用途。就我个人而言,我认为使用它意味着你的架构是错误的,你没有为意外问题准备好你的应用程序(断电?网络中断?狗按了电脑的电源按钮?这些事件都不会触发你的卸载前处理程序,亲爱的…),但也许那只是我。与任何其他事件一样,它可以通过用户javascript进行调整或禁用。我不主张对它有任何单独的偏好,因为IMO用户JS对于那些想要禁用它的超级用户来说已经足够容易了。
var algorithmToApply = 0;
window.onbeforeunload = function() {
if (algorithmToApply !== 0) { /* Anything ..*/
return 'A task is pending. Do you really want to leave?';
}
};