JavaScript SyntaxError 只是一个字符串,而不是一个对象?

问题描述 投票:0回答:1

我的应用程序是动态加载脚本的,因此我设置了一个

window.onerror
处理程序来报告阻止脚本加载的语法错误,如下所示:

window.onerror = function(error) {
  alert("ERROR: " + error.message + ": " + error.stack);
};

加载脚本时收到的警报是

ERROR: undefined: undefined
。当我将其更改为显示
error
的值和类型时:

window.onerror = function(error) {
  alert("ERROR: " + typeof(error) + ": " + error);
};

我得到的是

ERROR: string: SyntaxError: missing ) after argument list
。 Firefox 和 Chrome 上都会发生这种情况。

根据文档,SyntaxError 应该是一个具有

message
stack
以及其他属性的 Error 对象。我真的很想知道错误发生在哪里,而不仅仅是错误是什么!我在这里做错了什么吗?有什么方法可以获取有关该错误的更多信息吗?

javascript error-handling syntax-error
1个回答
0
投票

错误事件有多个参数。第一个是事件名称,它是一个字符串。

onerror = (event, source, lineno, colno, error) => {};

文档

© www.soinside.com 2019 - 2024. All rights reserved.