onbeforeunload消息出现两次(Internet Explorer)
我的ASP.NET网页上有以下脚本,用于在用户从未保存的更改导航离开页面时发出警告。onbeforeunload消息出现两次(Internet Explorer)
$(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并尝试导航离开使用像这样的一个环节。
<div onclick="window.location='http://www.domain.com';">Text</div>
如果用户选择“保留在此页面上”,则消息框出现两次。然后,如果他们选择“留在这个页面上的”第二次,调试器突出了以上链接与消息:
Microsoft JScript runtime error: Unspecified error.
这个问题似乎是具体到Internet Explorer。在网络搜索中,我能够找到许多关于相关错误的参考资料,令人难以置信地返回几个版本的Internet Explorer。但是,我无法从Microsoft或任何合理的解决方法中找到任何评论。以下是我发现的几个相关链接。
- http://forums.asp.net/t/1199756.aspx/1
- Why is my onbeforeunload handler causing an "Unspecified error" error?
- 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中遇到了同样的问题。
事实证明,在IE中分配window.location = "http://www.domain.com"
会导致这个问题。
如果您改为使用location.href = "http://www.domain.com"
,它只会提示用户一次。
希望这可以帮助别人!
URL不是onclick
属性的有效值。 onclick
指定要运行的JavaScript;如果你想在一个div的点击某处导航,你有两个主要选择:
- 包裹格在
<a href="yoururl">
-
写JS做同样的事情,是这样的:
前一种方法更好。
哎呀!我真诚的道歉。尽管我尽了最大的努力,但这是一个错字。现在纠正了。 –
不幸的是,虽然这个问题似乎在以前的Internet Explorer版本中首次出现,但这仍然是IE9中的一个错误。
我尝试在Microsoft Connect上提交问题,但无法执行。
无论如何,这个问题与通过JavaScript退出页面有关。通过将我的<div>
包装在锚标签<a href="..."><div></div></a>
中解决了该问题。使用常规链接,问题现在已经解决。
上帝派,永远不会想出来...... –
我在IE浏览器中的unbeforeload问题越来越沮丧,但这种解决方案像一个冠军!谢谢!! –