【问题标题】:Can a non-string variable come inside the handler of window.onerror event?非字符串变量可以进入 window.onerror 事件的处理程序吗?
【发布时间】:2012-09-24 11:10:51
【问题描述】:
window.onerror = function() {
    log arguments.m || arguments[0];
}

我收到了一个“[对象事件]”的日志。谁能告诉我为什么会有一个事件对象发送给处理程序?以及我们如何重现或修复它?

它仅在 android 设备的 web 控件上提供。

提前致谢。

【问题讨论】:

  • 好吧 onerror is 一个事件 & 非 IE 浏览器发送一个事件对象作为参数 ...
  • 感谢您的快速回复,但我正在打印参数 [0],这应该是一条消息 (developer.mozilla.org/en-US/docs/DOM/window.onerror),说明错误是什么?
  • 是的,你正确的应该是一个字符串,它是给我的 jsfiddle.net/MCLgV 页面上还有其他内容吗

标签: javascript android html android-webview


【解决方案1】:

您将错误事件对象作为函数的第一个参数。事件对象包含有关错误的详细信息。

【讨论】:

【解决方案2】:

arguments 不是由你如何定义函数决定的,而是由它的调用方式决定的。 当window.onerror 被调用时,event 作为第一个参数传递给它。 (对于非 IE,在 IE 中,事件是全局可访问的)。

例子:

var foo = function() {
  console.log(arguments[0], arguments[1]);
}

foo(1,2);
// will log 1 and 2

【讨论】:

  • 但是事件是不能被调用的,onerror是当javascript失败时触发的事件。
【解决方案3】:

这似乎只是旧 Android 浏览器中的一个错误。见https://github.com/getsentry/raven-js/issues/360

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多