定义:http://www.w3.org/html/wg/drafts/html/master/webappapis.html#onerroreventhandlernonnull
[TreatNonCallableAsNull] callback OnErrorEventHandlerNonNull = any ((Event or DOMString) event, optional DOMString source, optional unsigned long lineno, optional unsigned long column, optional any error); typedef OnErrorEventHandlerNonNull? OnErrorEventHandler;
可以写成:
/**
* @param {Event | DOMString} event 错误信息
* @param {DOMString} source 出错的文件URI
* @param {unsigned long} lineno 代码行号
* @param {unsigned long} column 代码列号
* @param {Object} error 错误的详细信息
function errorHandler(event, source, lineno, column, error) {
// TODO
}
window.onerror = errorHandler;
注意,不是所有浏览器都支持所有的参数。经测试,在手机上column和error就是undefined
只有同源的js抛出的错误信息才可正常的捕获。非同源的只有固定的第一个参数,值为Script error.
。
可以在js 标签中添加crossorigin
:
<script type="text/javascript" src="//doitbegin.duapp.com/error.js" crossorigin></script>
同时,js的HTTP Response Header也必须设置非同源可访问Access-Control-Allow-Origin:*