onbeforeunload消息出现两次(Internet Explorer)
我在ASP.NET网页上有以下脚本,用于在用户离开未保存更改的页面时向用户发出警告。
$(document).ready(function() { $('input:not(:button,:submit),textarea,select').change(function () { window.onbeforeunload = function () { return 'Changes made to this page have not been saved!'; } }); });
除了用户使用Internet Explorer时尝试使用像这样的链接导航之外的一些问题时,此function与预期一样。
Text
如果用户选择“留在此页面上”,则会出现两次消息框。 然后,如果他们第二次选择“留在此页面上”,调试器会使用以下消息突出显示上面的链接:
Microsoft JScript运行时错误:未指定的错误。
此问题似乎特定于Internet Explorer。 在网上搜索,我已经能够找到许多类似错误的参考资料,令人难以置信地回溯了几个版本的Internet Explorer。 然而,我无法找到微软的任何评论或合理的解决方案。 以下是我发现的一些相关链接。
- http://forums.asp.net/t/1199756.aspx/1
- 为什么我的onbeforeunload处理程序导致“未指定的错误”错误?
- http://www.telerik.com/community/forums/aspnet-ajax/tabstrip/cancel-on-onbeforeunload-in-ie-6-7-create-js-unspecified-error.aspx
- http://scottonwriting.net/sowblog/archive/2005/04/19/163068.aspx
- http://www.techtalkz.com/internet-explorer/116662-onbeforeunload-dialog-cancel-button-when-window-location-href-bug.html
- http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14213927
- http://www.webmasterkb.com/Uwe/Forum.aspx/jscript/4321/IE7-and-onbeforeunload
- http://www.bigresource.com/ASP-Javascript-Unspecified-Error-BHoy7ptS.html
- http://www.4guysfromrolla.com/articles/042005-1.aspx
有人可以建议一个解决方法吗? 看起来Connect不接受IE错误报告。 我正在使用IE9
我们在IE11中遇到了同样的问题。
事实certificate,分配window.location = "http://www.domain.com"
将导致IE中出现此问题。
如果您改为使用location.href = "http://www.domain.com"
,它只会提示用户一次。
希望这可以帮助别人!
URL不是onclick
属性的有效值。 onclick
指定要运行的JavaScript; 如果你想在点击div的某个地方导航,你有2个主要选择:
前一种方法更好。