javascript来显示;是否确实要从此页面导航;一致地

javascript来显示;是否确实要从此页面导航;一致地,javascript,jquery,onbeforeunload,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事件使其工作

var warning = true;
$(window).bind('beforeunload', function (event) {
   if ((warning)) {
        return "You will lose your unsaved changes";
   }
 });
我遇到的问题是,我在这个页面中有几个链接会导致ajax调用,这不会导致触发“window.beforeuload”。
问题是:当我们点击这些链接时,如何以同样的方式显示消息。我确实尝试过使用“确认”对话框-它可以工作,但消息会出现在对话框窗口中,而不是像第一种情况那样出现在本机浏览器中。

我认为这是一种与警告消息相关的问题,当您进入一个https网站时,该网站会在http上发布媒体或iframe

$(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>


编辑:忘了什么,现在可以用了

我不确定我是否理解对话框窗口和本机浏览器之间的区别您无法完全一致地执行此操作。
确认
对话框实际上是本机对话框窗口。你用什么来显示警告?就像在IE 8上一样(是的,我仍然坚持使用IE 8),确认对话框会在一个标题为“来自网页的消息”的“窗口”中显示消息,其中包含我的消息以及“确定”和“取消”按钮。但是当“beforeunload”上的js被触发时,我得到了一个完全不同的窗口,这是一个实际的IE窗口,标题为Windows Internet Explorer。在我的自定义“您将丢失未保存的更改”消息上方,我还会看到“您确定要从此页面导航”消息。显示的图标与“确认”对话框也不同,这几乎可以正常工作。问题是当我点击Cancel时。当我点击cancel时,我仍然会收到另一个(即窗口)警告,显示“false”b/w“您确定要导航…”和按钮。