javascript以一致的方式显示“您确定要从此页面导航”吗?

时间:2012-12-12 15:54:54

标签: javascript jquery onbeforeunload

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

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

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

2 个答案:

答案 0 :(得分: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); 
});

只需给你的Ajax链接类ajax:

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

编辑:忘了点什么,现在就可以了!

答案 1 :(得分:0)

我认为这是一种与您在https网站上输入警告消息相关的问题,该网站在http上有相关媒体或iframe ...