2013-12-13 97 views
0

我想要一个用户,当他试图离开我的网页时,与消息。我的页面包含一个表单和一些链接(菜单等)。我的jQuery代码如下Beforeunload事件不工作,因为我认为它应该

$(document).ready(function(){ 
    $(window).bind('beforeunload', function(e){ 
     answer=confirm('Do you want to go?'); 
     if (answer===false){ 
      e.preventDefault(); 
     } 
    }); 
}); 

但是,当我点击其中一个链接,用户浏览页面外,没有确认对话框出现什么都没有。我误解了beforeunload事件吗?

+0

每个浏览器都有它自己的方式来处理beforeunload事件。当然,您无法防止此事件的默认行为。你应该只是返回一个字符串提示消息 –

+1

http://stackoverflow.com/questions/6063522/jquery-beforeunload –

回答

1

不幸的是,没有办法覆盖默认行为。大多数浏览器只显示事件的returnValue,并伴有'OK'/'离开页面'和'取消'按钮。你可以尽管设置消息:

window.onbeforeunload = function (e) { 
     var e = e || window.event; 
     // For IE and Firefox prior to version 4 
     if (e) { 
      e.returnValue = 'Hey, you are leaving. Do you want to continue?'; 
     } 
     //you can do some last minute scripting here 
     // For Safari 
     return 'Hey, you are leaving. Do you want to continue?'; 
}; 

至于建议由Jason P,read more on it here

相关问题