Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.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 onbeforeunload循环并挂起Firefox_Javascript_Firefox_Onbeforeunload - Fatal编程技术网

Javascript onbeforeunload循环并挂起Firefox

Javascript onbeforeunload循环并挂起Firefox,javascript,firefox,onbeforeunload,Javascript,Firefox,Onbeforeunload,我使用这个脚本来防止页面的重新加载和后退按钮导航,以通知用户如果他/她离开,所做的更改将丢失 在Firefox中,问题似乎只有在按下后退按钮时才会出现。 此时会显示警报对话框,无论您按“停留”还是“离开”,该对话框都会不断循环,您必须强制关闭Firefox 有没有更好的脚本可以在FF中运行 window.onbeforeunload = function (e) { e = e || window.event; if (e) { e.returnValue = mess

我使用这个脚本来防止页面的重新加载和后退按钮导航,以通知用户如果他/她离开,所做的更改将丢失

在Firefox中,问题似乎只有在按下后退按钮时才会出现。 此时会显示警报对话框,无论您按“停留”还是“离开”,该对话框都会不断循环,您必须强制关闭Firefox

有没有更好的脚本可以在FF中运行

window.onbeforeunload = function (e) {
   e = e || window.event;

   if (e) {
      e.returnValue = message;
   }

   return message;
};

这段代码在firefox和Chrome中适用:

<script type="text/javascript">
window.onbeforeunload = confirmExit;
function confirmExit()
{
   return "Are you sure you want to leave?";
}
</script>

window.onbeforeunload=确认退出;
函数confirmExit()
{
return“您确定要离开吗?”;
}

您希望脚本的具体行为是什么?只是防止用户重新加载页面。。?我建议不要触摸浏览器的默认行为,除非这是完全必要的。它在Chrome和Safari中工作得非常好。我想通知用户;如果他/她离开,所做的更改将丢失。用户可以选择离开或留下。好的,唯一的错误是当你在firefox中按
back
时?在问题中写出准确的预期行为,你很可能会得到很好的答案。是的,从我到目前为止的测试来看,后退按钮的动作似乎是个问题。这可能是浏览器中的一个bug,你更改代码了吗?如果是,请在您的帖子中更新您的上述代码,以便我可以再次查看:)谢谢。这是相同的代码,我在函数内部使用它,但我也在函数外部尝试过。看起来,如果重新加载页面并在警报中单击“离开”,然后按浏览器后退按钮,对话框开始循环。如果在此时多次按“停留”,可能会中断循环,但如果按“离开”,循环将继续,然后只显示一个没有信息的对话框,只有一个“取消”和一个“确定”按钮,FF需要强制退出。您应该联系mozilla,因为这看起来像是浏览器错误,上面的代码是正确的,在google chrome和safari中工作,在mac版firefox中工作(完全按照您的操作),所以我会说这是一个浏览器错误,我相信mozilla会很高兴听到:)我会这样做。我刚刚发现这个网站上也有同样的问题。当您提出新问题并在发布前重新加载页面时,会弹出onbeforeinload警告。。如果你离开,重新装填,然后回击,它也开始在这里循环。我也在Mac上使用Firefox,我在我的两台电脑上都试过,所以它一定是浏览器的错误。