我的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时尝试使用类似这样的链接导航时,除了一些问题之外,这个工作正常。
<div onclick="window.location='http://www.domain.com';">Text</div>
如果用户选择“留在此页面上”,则会出现两次消息框。然后,如果他们第二次选择“留在此页面上”,调试器会使用以下消息突出显示上面的链接:
Microsoft JScript运行时错误:未指定错误。
此问题似乎是Internet Explorer特有的。在网上搜索,我已经能够找到许多类似错误的参考资料,令人难以置信地回溯了几个版本的Internet Explorer。但是,我无法找到微软的任何评论或合理的解决方案。以下是我发现的一些看似相关的链接。
有人可以建议一个解决方法吗?看起来Connect不接受IE错误报告。我正在使用IE9
答案 0 :(得分:9)
我们在IE11中遇到了同样的问题。
事实证明,分配window.location = "http://www.domain.com"
会在IE中导致此问题。
如果您改为使用location.href = "http://www.domain.com"
,它只会提示用户一次。
希望这可以帮助别人!
答案 1 :(得分:2)
网址不是onclick
属性的有效值。 onclick
指定要运行的JavaScript;如果你想在点击div的某个地方导航,你有2个主要选择:
<a href="yoururl">
写JS做同样的事情,比如:
前一种方法更好。
答案 2 :(得分:1)
不幸的是,尽管此问题似乎首先出现在以前版本的Internet Explorer中,但这仍然是IE9中的一个错误。
我尝试在Microsoft Connect上提交问题,但无法提交。
无论如何,问题与通过JavaScript退出页面有关。通过将<div>
包装在锚标记<a href="..."><div></div></a>
中解决了该问题。使用常规链接,问题现在已经解决了。