我在我们的应用程序中使用 jQuery。我们有一些 Javascript 代码可以验证您是否修改了任何数据。如果用户输入一些值并单击其他链接或其他内容,则会弹出以下内容:
“您确定要离开此页面吗?...按确定继续,或按取消留在当前页面。”
它在 IE7、IE9 和 Firefox 等浏览器中运行良好。但在 IE8 中,它会生成警告框,上面写着:
“停止运行此脚本。此页面上的脚本导致您的网络浏览器运行缓慢如果继续运行,您的计算机可能会变得无响应”。
以下是导致问题的我的 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;
});
是否有其他选择。