1

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

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

我要显示的弹出窗口是prettyPopin。这#beforeclose是我试图在窗口卸载之前绑定点击事件的锚的ID。我注意到本机 js 弹出窗口可以工作,但 jQuery 弹出窗口不起作用。

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

提前致谢。

4

3 回答 3

3

你不能安全地这样做。

onbeforeunload旨在避免完全阻止用户离开您的页面。您唯一应该做的就是返回一个字符串,其中包含用户可能不想离开页面的消息。除非用户使用 firefox,否则此消息会显示给用户。

于 2012-04-25T06:18:28.273 回答
1

试试这个:

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

        });
</script>
于 2012-04-25T06:18:31.020 回答
0

尝试将其更改为

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

来自jQuery 文档

event.preventDefault()

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

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

于 2012-04-25T06:11:58.390 回答