Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript-我如何告诉浏览器Chrome、Firefox、Safari允许我禁用刷新按钮?_Javascript_Jquery_Google Chrome_Safari_Opera - Fatal编程技术网

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?';
    }
};