位置: 编程技术 - 正文

用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中的数据类型分为两大类)

  • 所得税率率
  • 礼品进项怎么做进项转出
  • 可转债中签后怎么操作卖出
  • 定期定额个体工商户怎么报税
  • 自产产品用于职工福利会计处理
  • 合伙企业可以列入股东吗
  • 备用金可以不要发票吗
  • 其他应付款二级科目明细
  • 电子发票开票方怎么做账
  • 固定资产一次性折旧政策2023
  • 其他应收款报表数据怎么取
  • 增值税加附加税加企业所得税加印花税是多少个税点
  • 事业单位未取得工资
  • 普票丢失用第一联的复印件入账可以么
  • 持有至到期投资改名为
  • 收到的软件退税怎么处理
  • 定额发票去年的能用吗
  • 负利润需要交所得税吗
  • 特定业务计算的应纳税所得额是什么意思
  • 建筑业企业包括哪些企业
  • 蔬菜免税会计分录怎么做
  • 公司拍卖车牌
  • 政府补贴是否可享受即征即退优惠政策
  • 出口货物收汇是什么意思
  • 在win7中怎么安转只兼容win10的软件
  • windows10专业版是哪个版本
  • 公司内部收据能做凭证吗
  • 资产负债表里的存货怎么算
  • linux使用docker
  • 腾讯电脑管家浏览器保护在哪
  • 非正常损失运输费进项税额如何转出
  • k210中文手册
  • 最快的计算机是量子计算机吗
  • 资产减值会计处理对利润的影响
  • 小企业会计准则2023电子版
  • json postman
  • jquery还用吗2020
  • 负数发票的销售成本怎么做?
  • 税控服务费在电子税务局表一里怎么填写
  • 长期待摊费用是资产
  • 非居民纳税人工资个人所得税税率
  • pyqt 菜单
  • 工资表中可以出现减号的情况吗
  • 火车头造型
  • mongodb的分片集群的组成部分
  • 个人所得税申报截止时间
  • 增值税无票收入税率变了
  • 存款利息收入一般是多少
  • 进出口代理的账务怎么做
  • 企业哪些进项税抵扣
  • 多交的税款不退可以吗
  • 发工资四舍五入多了几块钱怎么办
  • 外资企业股权转让给内资企业流程
  • 预付账款没有发票吗
  • 钱汇错了报警有用吗
  • 进项税额抵扣是按税率分开抵扣吗
  • 企业无偿为员工买社保
  • 如何查询公司的营业执照照片
  • 商业企业会计制度变迁论文
  • mysql查询时间语句
  • Linux下卸载MySQL数据库
  • ubuntu右键菜单
  • xp查看系统
  • mac显示所有窗口的快捷键
  • centos 离线安装git
  • centos安装ntfs 3g
  • 怎么查看自己mac电脑有没有被人使用过
  • dns win7
  • 怎样设置从硬盘启动给电脑做系统
  • cocos jsc
  • jquery右击事件
  • js按照指定顺序排序
  • android的基本概念
  • shell脚本中调用外部c程序
  • vue中的计算属性forEach函数的使用
  • JavaScript中的事件处理
  • javascript要怎么学
  • 人脸识别身份验证
  • 郑州房产契税缴纳
  • 税务备案表银行留存
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设