2012-05-31 47 views
1

我使用此脚本来防止页面的重新加载和返回按钮导航,以通知用户他/她是否离开,所做的更改将会丢失。onbeforeunload循环并挂起Firefox

在Firefox中,只有在点击后退按钮时才会出现问题。 显示警告对话框,只要持续循环备份,无论您按“保持”还是“离开”,并且必须强制关闭Firefox。

有没有更好的脚本,这实际上工作在FF?

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

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

    return message; 
}; 
+0

你从完全脚本期待什么行为?只是防止用户重新加载页面..?除非完全有必要,否则我建议不要触及浏览器的默认行为。 –

+0

这是必要的。它在Chrome和Safari中很有用。我想通知用户;如果他/她离开,所做的更改将会丢失。用户可以选择离开或停留。 – user1121487

+0

好的,唯一的错误是当你在Firefox中按下“back”时?在问题中写出准确的预期行为,你很可能会得到很好的答案。 –

回答

2

此代码对我的作品在Firefox和Chrome:

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

现在它开始循环/挂起... – user1121487

+0

它可能是浏览器中的错误,你有没有更改代码?如果是在你的文章中更新你的上面的代码,所以我可以再看看:) –

+0

谢谢。这是相同的代码,我在函数内部使用它,但我也在函数之外尝试了它。看起来如果你重新加载页面并点击警告中的“离开”,然后按浏览器后退按钮,对话框就开始循环。如果你现在多次按住“停留”,你可能会断开循环,但是如果你按下“离开”循环继续,然后它只显示一个对话框,没有任何信息只是一个取消和一个确定按钮,FF需要一个力量放弃。 – user1121487