Javascript onbeforeunload事件导致IE8中出现问题

Javascript onbeforeunload事件导致IE8中出现问题,javascript,jquery,jquery-events,Javascript,Jquery,Jquery Events,我在应用程序中使用jQuery。我们有一些Javascript代码,可以验证您是否修改了任何数据。如果用户输入一些值并单击其他链接或其他内容,则弹出窗口显示: 确实要离开此页吗?…按“确定”继续,或按“取消”停留在当前页 它在IE7、IE9、Firefox和其他浏览器中运行良好。但在IE8中,它会生成一个警告框,上面写着: “停止运行此脚本。此页面上的脚本会导致web浏览器运行缓慢。如果继续运行,您的计算机可能会失去响应。” 下面是导致问题的Javascript $(document).read

我在应用程序中使用jQuery。我们有一些Javascript代码,可以验证您是否修改了任何数据。如果用户输入一些值并单击其他链接或其他内容,则弹出窗口显示:

确实要离开此页吗?…按“确定”继续,或按“取消”停留在当前页

它在IE7、IE9、Firefox和其他浏览器中运行良好。但在IE8中,它会生成一个警告框,上面写着:

“停止运行此脚本。此页面上的脚本会导致web浏览器运行缓慢。如果继续运行,您的计算机可能会失去响应。”

下面是导致问题的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;
        });

是否有其他选择。

不太确定,但您可以从这个开始。在jQuery文档中:
从jQuery 1.7开始,.live()方法已被弃用。使用.on()附加事件处理程序。较旧版本的jQuery用户应优先使用.delegate(),而不是.live()。
如果仍然出现错误,则可以排除此错误。感谢回复。我使用的是jQuery1.4.2JS。