onbeforeunload事件导致IE8中的问题

时间:2012-11-23 04:44:45

标签: javascript jquery javascript-events

我在我们的应用程序中使用jquery。我们有一些javascript代码可以验证您是否修改了任何数据。如果用户输入一些值并单击其他链接或其他内容,则会弹出“您确定要离开此页面吗?... ...按OK继续,或取消以保留当前页面。 “ 它在IE7,IE9和Firefox和其他浏览器中运行良好。但是在IE8中它会生成警告框,上面写着“停止运行此脚本。此页面上的脚本导致您的wb浏览器运行缓慢如果它继续运行,您的计算机可能会无响应”。

以下是我的javascript导致问题。

$(document).ready(function()
    {
        // Flag to display warning.
        // If needToConfirm = true warning message will be displayed. 
        needToConfirm = false; 
        window.onbeforeunload = askConfirm;

        function askConfirm()
        {
            if (needToConfirm)
            {
                // Message to be displayed in Warning.
                return "Your data will be lost.";
            }       
        }

        // Add all form elements in argument.
        $("select,input,textarea").live('change',function ()
        {
            needToConfirm = true;
        });

        // Add all form elements in argument.
        $("select,input,textarea").live('keypress',function ()
        {
            needToConfirm = true;
        });


        // Use "class = noWarning" for save or cancel button.
        $(".noWarning").click(function () 
        {
            needToConfirm = false;
        });

    });

是“window.onbeforeunload = askConfirm”的问题吗?编写其他一些东西。

  

修改

发现以下行导致IE8中出现问题

$("select,input,textarea").live('keypress',function ()
        {
            needToConfirm = true;
        });

是否有其他替代方案。

0 个答案:

没有答案