为什么开放式IE DOM浏览器会导致;未指定错误“;在JavaScript中打开窗口关闭?

为什么开放式IE DOM浏览器会导致;未指定错误“;在JavaScript中打开窗口关闭?,javascript,internet-explorer,Javascript,Internet Explorer,首先:我将服务器设置为捕获并记录所有客户端JS错误,并在遇到运行时JS错误时显示警报()。例: <script type="text/javascript"> window.onerror = function() { alert("Error caught"); }; </script> 此代码段位于“Errors.js”中,是页面最后包含的内容 处理程序值如下所示: 消息:“未指定的错误” filename:页面的URL(如果是静态的),如果是由其他

首先:我将服务器设置为捕获并记录所有客户端JS错误,并在遇到运行时JS错误时显示警报()。例:

<script type="text/javascript">
  window.onerror = function() {
    alert("Error caught");
  };
</script>
此代码段位于“Errors.js”中,是页面最后包含的内容

处理程序值如下所示:

  • 消息:“未指定的错误”
  • filename:页面的URL(如果是静态的),如果是由其他代码通过cgi生成的,则为空
  • 第1行
  • 科尔诺:1
  • 错误:“错误:未指定的错误。”

  • 将事件作为参数传递时,事件是未定义的。

    我对此也感兴趣。我基本上认为它是无害的,但最好知道它是怎么回事。哪个版本的IE?使用哪些参数调用事件处理程序?根据他们应该是消息,文件名,行号,冒号,错误。这是无害的,但IE的开发工具不如其他的。在某些版本的IE中,当开发者工具关闭时,您会从引用
    控制台的JS代码中得到一个错误,因为
    控制台
    对象仅在工具打开时创建。@ScottMarcus我知道在IE8中是这样的,但在最近的版本中我没有看到这种情况发生。IE开发工具确实有一些缺点,比如与Chrome相比,在其中使用伪元素有多困难,但这并不是特别糟糕。@Oriol它发生在IE5、IE7和IE11(Edge)中。event和event.target都未定义。为了引用您的编辑,我的事件处理程序包含了所有这些内容。我对此也很感兴趣。我基本上认为它是无害的,但最好知道它是怎么回事。哪个版本的IE?使用哪些参数调用事件处理程序?根据他们应该是消息,文件名,行号,冒号,错误。这是无害的,但IE的开发工具不如其他的。在某些版本的IE中,当开发者工具关闭时,您会从引用
    控制台的JS代码中得到一个错误,因为
    控制台
    对象仅在工具打开时创建。@ScottMarcus我知道在IE8中是这样的,但在最近的版本中我没有看到这种情况发生。IE开发工具确实有一些缺点,比如与Chrome相比,在其中使用伪元素有多困难,但这并不是特别糟糕。@Oriol它发生在IE5、IE7和IE11(Edge)中。event和event.target都未定义。为了引用您的编辑,我的事件处理程序拥有所有这些。
    (function(window) {
      function CatchRuntimeJSError(message, filename, lineno, colno, error) {
        Log(filename + ":" + lineno, message);
        var err = "You've had a run-time JavaScript Error.";
        alert(err); 
      }
      window.onerror = CatchRuntimeJSError;
    })(window);