window.onerror和[object Event]

sco*_*sen 5 javascript

我的网站上有一些错误记录代码可以将Javascript错误保存到文件中,所以稍后我可以查看一些浏览器中的代码是否存在问题.

有时我得到一条错误消息,如消息:[object Event] url:undefined line:undefined所以我不知道错误在哪里.

当它是[对象事件]时,如何从消息中获取更多信息,以便我可以知道错误来自哪个文件和行号.

window.onerror = error;

function error(message, url, line) {

   // sometimes message is [object Event]

}
Run Code Online (Sandbox Code Playgroud)

我认为这样的事情.

window.onerror = error;

function error(message, url, line) {

   // sometimes message is [object Event]


    if (typeof message === 'object') {

        message = message
            + ' + '
            + message.url
            + ' + '
            + message.lineno;

    }

}
Run Code Online (Sandbox Code Playgroud)

尝试这个,但我得到Uncaught TypeError:Object#没有方法'serialize'

if (typeof message === 'object') {

   message = JSON.serialize(message);

}
Run Code Online (Sandbox Code Playgroud)

使用JSON.stringify(message),我得到Uncaught TypeError:将循环结构转换为JSON

if (typeof message === 'object') {

   message = JSON.stringify(message);

}
Run Code Online (Sandbox Code Playgroud)

Jos*_*eph 0

如果你[someting Something]在 JS 中得到类似的东西,通常意味着它是一个对象。您可以执行console.log(message)并检查对象的内容。它看起来像

{
  somethingHere : 'data',
  anotherHere : 'more data'
}
Run Code Online (Sandbox Code Playgroud)

要访问它们,您可以使用点表示法:

theObject.somethingHere //data
Run Code Online (Sandbox Code Playgroud)

在你的情况下,就像这样,其中something是对象的键。

message.something
Run Code Online (Sandbox Code Playgroud)