我试图模仿在这个网站上发现的功能。但它似乎没有工作。我试图用jQuery 1.4.4来做到这一点,在我搜索了很多例子后,我可以在这里找到我以及其他我想到的形式。防止页面卸载失败。想法?
$(window).bind('beforeunload', function()
{
if(show_unsaved_warning == true)
{
//e.preventDefault();
var exitBeforeSave = confirm('You have unsaved changes');
if(exitBeforeSave == false)
{
return false;
}
}
});
它工作的点显示确认对话框,但无论你点击确定或取消,页面仍然加载/重新加载。我需要防止类似于堆栈的方式,所以如果在表单上进行了更改,我可以提示用户保存更改以防万一他们忘记了,或者让他们离开。在这个等式中有什么我缺少的东西,还是仅仅是不可能的?
请注意我意识到这是一个问题,在这里被问了十几遍,在其他地方的几十个论坛上。如果我能根据我发现的东西拼凑一些东西,否则我不会问。我来到这里与明显的重复问题,因为我目前卡住了。
编辑我改变了代码一点点与确认对话框的工作,然而,问题仍然非常遗体,并在Firefox我其实引起确定/取消对话框,之后确定/取消是点击,Firefox会创建另一个提示离开/保持自己的。我怎样才能避免这种行为?
'如果(show_unsaved_warning ==真)'是更好的写作'如果(show_unsaved_warning)'。类似地,if(exitBeforeSave == false)'更好地写为'if(!exitBeforeSave)'。我知道这是一个小问题,比较布尔变量与真/假总是得到我的山羊。另外,将camelcase与下划线混合在一起,以确保功能相同的变量是以无类型语言失去理智的最可靠方法。 (是exitBeforeSave还是exit_before_save ???直到运行时才会知道)。 –