我的网站上有一些错误记录代码可以将Javascript错误保存到文件中,所以稍后我可以查看一些浏览器中的代码是否存在问题。
有时我会收到一条错误消息,例如消息:[object Event] url:undefined line:undefined 所以我不知道错误的位置。
如果是[对象事件],如何从消息获取更多信息,以便我可以知道错误来自哪个文件和行号。
window.onerror = error;
function error(message, url, line) {
// sometimes message is [object Event]
}
我认为是这样的。
window.onerror = error;
function error(message, url, line) {
// sometimes message is [object Event]
if (typeof message === 'object') {
message = message
+ ' + '
+ message.url
+ ' + '
+ message.lineno;
}
}
尝试这一点,但我得到未捕获的TypeError:对象#没有方法'序列化'
if (typeof message === 'object') {
message = JSON.serialize(message);
}
使用JSON.stringify(message)我得到未捕获的TypeError:将循环结构转换为JSON
if (typeof message === 'object') {
message = JSON.stringify(message);
}
答案 0 :(得分:0)
如果在JS中获得类似[someting Something]
的内容,通常意味着它是一个对象。您可以执行console.log(message)
并检查对象的内容。它看起来像
{
somethingHere : 'data',
anotherHere : 'more data'
}
要访问它们,您可以使用点表示法执行此操作:
theObject.somethingHere //data
在你的情况下,就像这样,something
是对象的一个键。
message.something
答案 1 :(得分:0)
您在哪个浏览器或浏览器上看到此[Event object]
消息?检查对象内容的一种可能方法是:
var messageString = '';
for (var x in message) {
if (messageString) messageString += ', ';
messageString += x + ': ' + message[x];
}
message = '{' + messageString + '}';
如果您可以为此错误消息提供任何类型的可重现测试用例,包括发生的浏览器版本,这将有很大帮助。