位置: 编程技术 - 正文

用window.onerror捕获并上报Js错误的方法(windows捕获文件夹)

编辑:rootadmin

推荐整理分享用window.onerror捕获并上报Js错误的方法(windows捕获文件夹),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:window.onerror可以捕捉异步错误么,w10捕获,捕获win10,捕获win10,捕获win10,捕获win10,捕获win10,window.onerror可以捕捉异步错误么,内容如对您有帮助,希望把文章链接给更多的朋友!

前两天有个游戏的用户反馈说,打开游戏后不能玩儿,只有一个游戏面板,数字无法初始化,更无法移动,设备为iPhone 4S、iOS 5.1。尝试从微信调起Safari打开,依然不好使。由于游戏中运用了比较多的HTML5特性,所以粗略估计是有JS报错导致。不过这样的信息该如何捕获到呢?当然是传说中的window.onerror。

从W3C找到关于window.onerror的方法体介绍:

这个意思,基本可以就是说,window.onerror方法,我们可以写成:

不过使用过程中还得注意兼容性问题,不是所有浏览器都有参数列表中的所有参数,chrome之类的,都是浏览器标准草案的领跑者,这些个参数用就是了!

于是,可以写一个小Demo来尝试一下:

其中error.js文件中的内容,简单的这样写一句:

throw new Error("出错了!"); 用浏览器跑起来以后,打开console,基本就是这样的了:

所以,这些数据都是可以做上报的了。当然了,上面的error.js是和html页面同域名下,如果error.js不在同域下,会是怎样的?我们把error.js的引用改一下:

<script type="text/javascript" src="//doitbegin.duapp.com/error.js"></script> 再来打开console,我们看到的是这样的:

用window.onerror捕获并上报Js错误的方法(windows捕获文件夹)

相当于window.onerror方法只捕获到了一个errorMessage,而且是固定字符串,毫无参考价值。查了点资料(Webkit源码),发现在浏览器实现script资源加载的地方,是进行了同源策略判断的,如果是非同源资源,errorMessage就被写死为“Script error”了:

好在script标签有一个crossorigin属性,设置它可以显示比较详细的错误信息,我们试着将script标签改一下:

<script type="text/javascript" src="//doitbegin.duapp.com/error.js" crossorigin></script>刷新页面,这个时候看到console中的输出是这样的:

出现这个error也不意外,既然设置了error.js为crossorigin,那error.js的HTTP Response Header也必须设置非同源可访问。为了方便设置Header,把error.js做一个小改动,更名为:error-js.php。

此时刷新页面,看到console中的输出就已经正常了,所有信息都能正常捕获:

OK,技术细节分析结束!我游戏静态资源是放到静态域(非同源)下的,所以要想通过window.onerror捕获错误信息,就得按照上面的最后一种情况来操作了:

1、添加script的crossorigin属性

2、配置一下服务器,设置静态资源Javascript的Response为Access-Control-Allow-Origin

window.onerror()的用法与实例分析 onerror语法使用onerror默认有三个入参:msg:错误信息url:错误所在文件line:错误所在代码行,整型window.onerror=function(msg,url,line){//somecode};对于bodyonerror=somec

Bootstrap树形控件使用方法详解 一、JQuery树形控件Jquery树形控件是一款基于JQuery+bootstrap、完全通过js和样式手写出来的非常轻量级的控件,网上很多地方都能看到它的影子。它功能简

js+css绘制颜色动态变化的圈中圈效果 本文实例讲述了js+css绘制颜色动态变化的圈中圈效果。分享给大家供大家参考,具体如下:运行效果截图如下:具体代码如下:htmlheadtitlecircle/titlestylety

标签: windows捕获文件夹

本文链接地址:https://www.jiuchutong.com/biancheng/382818.html 转载请保留说明!

上一篇:理解javascript异步编程(js的异步解决方案有哪些)

下一篇:JavaScript中的Math.E属性使用详解(JavaScript中的数据类型分为两大类)

  • 印花税会计分录最新
  • 年终奖1月发放能算上一年吗
  • 国外租赁行业都包括哪些
  • 总公司向子公司收取管理费如何纳税
  • 销售免税药品要进项税额转出吗
  • 购原材料红字发票会计分录怎么写?
  • 委托加工的材料计入什么科目
  • 城建税当月缴纳要计提吗
  • 异地设立分公司可以独立核算吗
  • 企业所得税前列支的费用
  • 没有进项的产品开了发票怎么办
  • 税务局金四上线
  • 一般纳税人为其他公司制作标书怎么缴税?
  • 固定资产怎么进入生产成本
  • 教育培训机构涉税问题
  • 成本差异的种类有哪些?
  • 安装服务需要预缴税款吗
  • 费用转入本年利润的哪一方
  • 其他业务收入借贷方向会计分录
  • 冲销货款应怎么记账
  • xmp是什么格式的文件是一种预设吗
  • 前端实现拖拽拉动图片
  • php变量底层实现
  • 什么情况下计提信用减值损失
  • 养老院护工5.8k包吃住
  • php+mysql+ajax实现单表多字段多关键词查询的方法
  • 代码简单图案
  • 轻量级网络设计
  • 破解版微擎框架如何升级
  • 付报刊费计入什么科目
  • php采集器
  • 常见的垃圾回收器有哪些
  • java中file的用法
  • mysql常用表
  • 3分钟学会做蛋挞
  • 怎样回到一年前
  • 应收账款是否存在的审计程序
  • 占地面积法如何分摊土地成本
  • 个人所得税数据怎么导入新电脑
  • db2 insert timestamp
  • 企业所得税季度预缴纳税申报表
  • 公司购买理财产品收益会计分录
  • 研发费用形成无形资产的摊销怎么处理
  • 行政单位基建账地质灾害评估报告计哪个科目
  • 查账征收个体户经营所得税怎么计算
  • 押金无法收回账怎么办
  • 股东出资做什么科目
  • 防伪系统制作
  • 房地产开发企业销售自行开发的房地产项目
  • 企业购买黄金该交什么税
  • 累计减免所得税
  • 预收货款转营业外收入
  • 企业亏损应纳税所得额怎么填
  • 毛利率计算公式
  • xtrabackup备份原理
  • mysql修改默认编码
  • mysql隔离级别详解
  • fedora系统怎么设置停电关机
  • ubuntu如何安装
  • 解决mac上不能写字的办法
  • win7安装软件出现乱码
  • Win10预览版桌面图标和任务栏不翼而飞怎么办?
  • 开机记事本自动打开
  • centos libcrypto.so.1.0.0
  • 封装windows7
  • win10飞行模式开关是灰色的
  • linux 746
  • jquery简单例子
  • Node.js中的核心模块包括哪些内容?
  • android图片库
  • bat 批处理文件
  • unity打包package
  • andriod+nfc
  • 分享一下相亲时碰见过哪些奇葩事
  • nodejs教学视频
  • [置顶] 转载自官方-unity5.0正式发布了,看看带来哪些重要的新特性!
  • 安卓手机都这样
  • 火车票抵扣申报表怎么填
  • 增值税专用发票电子版
  • 企业的财务是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设