前端错误监控上报公共方法,可在父页面及iframe子页面同时使用

先创建公共文件error-reported.js 内容如下:

/**
 * 获取前端错误信息进行上报
 * @param iframe
 */
function catchError (iframe) {
    var _this = this
    var source = '来自外层框架错误信息:'
    if (iframe) {
        _this = iframe.contentWindow
        source = '来自iframe内部错误信息:'
    }

    _this.addEventListener('error', function (event) {
        console.log(source, event)
        // TODO 错误上报
    }, true)
}

 

然后在入口文件最前面引入error-reported.js

本文项目背景:使用art-template模板引擎建立了公共框架,使用iframe进行页面套用。所以整个系统分为两部分,一部分是外层框架部分,一部分是iframe子页面部分。

监控也分为两部分:

1.外层框架错误监控

2.子页面iframe错误监控

 

外层框架直接在引用error-reported.js 的下面调用catchError方法即可,如:

<!-- strat 前端错误上报 -->
<script src="error-reported.js"></script>
<script>
    catchError()
</script>
<!-- end 前端错误上报 -->

 

内部iframe需要首先检测iframe是否已创建实例,再使用new操作符调用catchError方法,如:

var iframe = document.getElementsByClassName("content-iframe")[0]
var loadingBox = document.getElementsByClassName("content-loading-box")[0]
if (iframe) {

    new catchError(iframe)

    if (iframe.attachEvent) {
        // IE
        iframe.attachEvent("onload", function () {
            // TODO 关闭loading动画
        })
    } else {
        // 非IE
        iframe.onload = function () {
            // TODO 关闭loading动画
        }
    }

}

 

 

转载于:https://www.cnblogs.com/Man-Dream-Necessary/p/11310654.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值