2010-03-12 67 views
3

有没有办法用javascript(jquery)杀死卸载函数?在JS中杀死卸载函数?

我期待这样的事情:

window.onbeforeunload = function(){ 
    confirm("Close?") 
} 

或jQuery中:

$(window).unload(function() { 
    confirm("close?") 
}); 

现在,在窗口卸载我得到我的确认警报,但它会继续在任何情况下。点击取消它将不会留在我的页面上。

+0

但尝试从jQuery版本 – Pointy 2010-03-12 15:14:44

回答

2

的函数必须返回false中止或true继续,所以你cauld简单地返回这样的确认:

window.onbeforeunload = function(){ 
    return confirm("Close?") 
} 
1
$(window).unload(function() { 
    var answer = confirm("Leave This website?") 
if (answer){ 
    return false; 
} 
else{ 
    alert("Thanks for sticking around!"); 
    return true; 
} 
}); 
+0

返回'FALSE'不应该总是返回false。 。只有当用户确认... – 2010-03-12 15:26:32

+0

以这种方式,id确实与用户的选择相反... – oezi 2010-03-12 15:30:39

+0

@oezi他应该扭转它,然后解决问题:D – ant 2010-03-12 15:34:54

1

是的,有一种方法。 onbeforeunload函数与其他事件有点不同。你所要做的就是从函数中返回一个字符串,浏览器会为你完成剩下的工作。语法如下:

window.onbeforeunload = function() { 
    return "Close?"; 
} 

这就是你需要做的一切。在出现的对话框中单击“取消”将使用户保持当前页面,并且确定将让用户离开或关闭页面。这很容易,你根本不需要使用jQuery。

+0

呃......不。我想你的意思是,'return confirm(“Close?”);' – Pointy 2010-03-12 15:25:01

+2

不,我的意思正是我写的。尽管如此,我想我确实有点遗漏。虽然这不是规范事件,但它被大多数浏览器使用。请随时查看他们的参考页面: Microsoft:http://msdn.microsoft.com/en-us/library/ms536907%28VS.85%29.aspx 和Mozilla:https:// developer。 mozilla.org/en/DOM/window.onbeforeunload – Chibu 2010-03-12 19:22:13