0

当用户尝试从页面导航时,我需要显示警告消息(“您确定要从此页面导航”)。我使用:window.beforeunload 事件得到了这个工作。

var warning = true;
$(window).bind('beforeunload', function (event) {
   if ((warning)) {
        return "You will lose your unsaved changes";
   }
 });

我遇到的问题是,我在这个页面中有几个链接会导致 ajax 调用——这不会导致“window.beforeunload”被触发。问题是:当我们单击这些链接时,如何以相同的方式显示消息。我确实尝试过使用“确认”对话框 - 它可以工作,但消息出现在对话框窗口中,而不是像第一种情况那样出现在本机浏览器中。

4

2 回答 2

1
$(document).ready(function() {
   var warning = true;

    var showWarning = function (event) {
       if ((warning)) {
            var message = "You will lose your unsaved changes";

            if (event.currentTarget.tagName != "A") {
                return message;
            }

            var conf = confirm(message);

            if (!conf) { //If clicked no prevent click
                event.preventDefault();
                return false;
            }
       }
     };

    $(window).bind('beforeunload', showWarning);
    $("a.ajax").click(showWarning); 
});

​</p>

只需像这样为您的 Ajax-links 类 ajax 提供:

<a href="#" class="ajax">Ajax action</a>

编辑:忘记了一些东西,它现在可以工作了!

于 2012-12-12T16:03:01.510 回答
0

我认为这是一种与当您进入具有相关媒体或 iframe 的 https 网站时出现的警告消息有关的问题...

于 2012-12-12T16:01:39.990 回答