badJsReport({ url:'http://www.baidu.com', //发送到后台的url *必须 data:{}, //自定义添加上报参数,比如app版本,浏览器版本 -可省略 successCallBack:function(response, xml){ // 发送给后台成功的回调,-可省略 }, failCallBack:function(error){ // 发送给后台失败的回调,-可省略 } })
注意点:
1、对于跨域的JS资源,window.onerror拿不到详细的信息,需要往资源的请求添加额外的头部。
静态资源请求需要加多一个Access-Control-Allow-Origin头部,也就是需要后台加一个Access-Control-Allow-Origin,同时script引入外链的标签需要加多一个crossorigin的属性。这样就可以获取准确的出错信息。
2、因为代码的最后return true,所以如果有错误信息,浏览器不会console出来,如果需要浏览器console,可以注释掉最后的return true
缺点:
对于压缩之后的代码,我们得到错误的信息,但是我们却无法定位到错误的行数,比如jquery的源码压缩,总共才3行。这样就很难定位到具体的地方了,因为一行有很多很多的代码。
代码我放到了github上:https://github.com/xianyulaodi/badJsReport