如何在window.onbeforeunload中显示是或否窗口?

时间:2012-09-04 22:22:22

标签: javascript jquery asp.net

我正在尝试警告用户如果要离开页面则保存数据。该消息应显示简单的“想要保存数据吗?” ,如果YES调用代码隐藏方法(asp:按钮点击),如果没有从页面离开页面。

但是现在它显示了我的消息的不需要的消息字符串(见下文)。

enter image description here

 var form_has_been_modified = 0;
    $(function () {

        $("input").keyup(function () {
            form_has_been_modified = 1;
        })
        window.onbeforeunload = function (e) {
            if (!form_has_been_modified) {
                return;
            }

            var message = "Do you want to save the data before leave the page?";

            return message;
        }

    });

2 个答案:

答案 0 :(得分:1)

不幸的是,这是浏览器行为,您无法更改它。 您可能希望重新发送消息,以便在浏览器的预定义消息的上下文中有意义。此外,请确保您测试其他浏览器,因为消息和行为可能不同。

答案 1 :(得分:0)

这是Internet Explorer的一种特殊行为(作为客户端Web浏览器),您无能为力。它只是onbeforeunload()的特殊框。如果您在JS的其他位置显示是/否对话框,您将获得正常的框。但是对于onbeforeunload(),你会得到这样的对话。

在IE9中,它被更复杂的盒子取代,盒子里有“离开页面”和“留在页面上”按钮。这样做是为了保护用户免受欺诈网站的侵害。