2013-07-23 46 views
-1

我有一个自定义弹出框,如灯箱或模式框,我想显示它,并防止页面卸载或退出时,用户尝试离开或退出页面因此,继承人我的代码和我尝试迄今:当卸载或退出事件执行功能jQuery

$(window).bind('beforeunload', function(){ 
    return loadPopup(); 
}); 

正如你可以从上面的代码,当用户试图退出或离开该页面中看到,它应该执行一个功能:

loadPopup(); 

但它不起作用,loadPopup();没有被解雇。我上面的代码应该是什么问题,为什么它不执行loadPopup();函数?

+6

在这里看到了答案:http://stackoverflow.com/questions/6063522/jquery-beforeunload。 'beforeunload'不能像你想要的那样工作;它只需要一个字符串(如果你返回一个)并弹出。尽管如此,你可以在'unload'上做一些*东西。再次看到链接的答案。 –

+0

请查看我更新的问题! –

+0

'loadPopup'做什么/返回? 'beforeunload'可以返回的* only *是一个字符串。它也会*不*等待任何异步函数或回调。 –

回答

0

入住这http://jsfiddle.net/Cnsyd/

我不知道你做使用jQuery的东西,但很明显,你可以做用JavaScript的东西。

function closeIt() 
    { 
    return "Any string value here forces a dialog box to \n" + 
     "appear before closing the window."; 
    } 
    window.onbeforeunload = closeIt; 

JavaScript onbeforeunload event。它由Microsoft引入,但适用于大多数浏览器,并单击here以获取更多详细信息。

相信这是你最终需要的东西。

+0

为什么会有负面标记? – kbvishnu

+0

与其他人一样,答案也一样,并且不会准确地回复我的帖子! –

+0

请查看我更新的问题! –

1

VeeKayBee解决方案是正确的。

反正你可以使用jQuery就此别过:

$(window).bind('beforeunload', function(){ 
      fireOnLeave(); 
      return ''; 
}); 
function fireOnLeave(){ 
    console.log('Fired'); 
} 

您可以检查控制台日志,看看哪些是确认功能已经fired.But你返回一个“射击”字符串字符串到'beforeunload'事件。

而且还jQuery的.unload做的事情,但它已经被废弃了,因为JQuery的1.8 http://api.jquery.com/unload/