在浏览器窗口关闭之前显示jQuery弹出窗口

时间:2012-04-25 06:04:33

标签: javascript jquery popup onbeforeunload

我正在使用以下js在浏览器/窗口关闭之前显示一个弹出窗口。但它似乎没有奏效。

$(window).bind('beforeunload', function(e) {
    $('#beforeclose').click(); 
});

我试图展示的弹出窗口是prettyPopin。并且#beforeclose是锚点的id,我试图在窗口卸载之前绑定click事件。我注意到本机js弹出窗口工作但jQuery弹出窗口不起作用。

有没有办法实现我想要的?请向我解释或向我推荐相应的链接,因为我不是js的专家。

提前致谢。

3 个答案:

答案 0 :(得分:3)

你无法安全地做到这一点。

onbeforeunload旨在避免完全阻止用户离开您的网页。您应该做的唯一事情是返回一个字符串,其中包含用户可能不想离开页面的消息。此消息将显示给用户unless he's using firefox

答案 1 :(得分:1)

试试这个:

<script type="text/javascript">
        $(function() {
        function confirmmsg() {
            return "Mail Not sent";
        }
        window.onbeforeunload = confirmmsg;

        });
</script>

答案 2 :(得分:0)

尝试将其更改为

$(window).bind('beforeunload', function(e) {
    $('#beforeclose').click(); 
    e.preventDefault();
    return false; // just in case.. 
});

来自jQuery documentation

  

event.preventDefault()

     

说明:如果调用此方法,则为该事件的默认操作   不会被触发。

基本上,您绑定了显示beforeunload事件弹出窗口的函数,但这不会像警报窗口那样阻止浏览器。使用event.preventDefault(),您将停止执行事件流程。