Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript onbeforeunload消息显示两次(Internet Explorer)_Javascript_Jquery_Internet Explorer - Fatal编程技术网

Javascript onbeforeunload消息显示两次(Internet Explorer)

Javascript onbeforeunload消息显示两次(Internet Explorer),javascript,jquery,internet-explorer,Javascript,Jquery,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 bee

在我的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=&#39;http://www.domain.com&#39;;">Text</div>
文本
如果用户选择“停留在此页面”,消息框将显示两次。然后,如果他们第二次选择“停留在此页面”,调试器将突出显示上面的链接,并显示以下消息:

Microsoft JScript运行时错误:未指定的错误

此问题似乎特定于Internet Explorer。在网上搜索,我已经找到了很多关于相关bug的参考资料,难以置信的是,这些都可以追溯到InternetExplorer的几个版本。然而,我找不到微软的任何评论或合理的修正。以下是我发现的一些相关链接


  • 有人能提出解决办法吗?看起来Connect不接受IE错误报告。我使用的是IE9

    URL不是
    onclick
    属性的有效值
    onclick
    指定要运行的JavaScript;如果要在单击div时导航到某个位置,您有两个主要选择:

  • 将div包装在
  • 写JS做同样的事情,比如:


  • 前一种方法是更好的。

    不幸的是,尽管这个问题最初出现在以前版本的Internet Explorer中,但它仍然是IE9中的一个缺陷

    我尝试在Microsoft Connect上提交此问题,但无法提交


    无论如何,问题与通过JavaScript退出页面有关。通过将我的
    包装在锚定标记
    中,问题得以解决。使用常规链接,这个问题现在已经解决。

    我们在IE11中遇到了同样的问题

    结果是分配
    window.location=”http://www.domain.com“
    将导致IE出现此问题

    如果改为使用
    location.href=”http://www.domain.com“
    ,它只会提示用户一次


    希望这能帮到别人

    哎呀!我诚挚的道歉。尽管我尽了最大的努力,那还是一个打字错误。现在更正了。我对IE中的未加载问题感到沮丧,但这个解决方案效果很好!!谢谢