前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于浏览器报错:stack overflow at line: 0 的解决法

关于浏览器报错:stack overflow at line: 0 的解决法

作者头像
全栈程序员站长
发布2022-09-14 19:28:53
5110
发布2022-09-14 19:28:53
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

本文主要是从程序猿的角度进行分析的,致力于提供解决问题的思路,而不是盲目的从网上百度

关于页面错误:stack overflow at line: 0

很明白,就是堆栈的溢出!所以,导致的原因也很清楚,无非就是页面中出现了类似于递归式的无线循环而导致的,所以可能出现的原因就很明晰了:

1.浏览器对图片,js等引用进入了无线循环

这时候出错的原因,无非是图片路径不正确或者引用多个相同的js可能会导致这个问题,这个时候的步骤是:

a.检查整个页面,是否有图片缺失或者不完整,

b.通过看源代码检查是否引用了相同的js

2.js代码写的进入了死循环

这时首先想到的不是去看js代码,而是先在错误的页面进行确定,是哪个功能会造成报错,确定到某一个事件,比如click事件,blur事件或者focus事件等,然后针对性的去看代码进行调试或者在js代码里添加“debugger”浏览器执行到此处时会自动进入调试模式

3.由于每种浏览器所执行的内核可能不同,对js的兼容性也可能不同,所以浏览器的影响也会出现这种问题

此时就需要多种浏览器进行测试,一般ie浏览器的各个版本也会有影响,此时就需要进行对比,比如浏览器版本之间对比,正常页面和错误页面进行对比,最终肯定能找到那段浏览器不兼容的代码


ps:附上获取浏览器版本的代码,以ie8为例:

代码语言:javascript
复制
  //IE8的浏览器
    var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
    var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器
    if(isIE) {
        var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
        reIE.test(userAgent);
        var fIEVersion = parseFloat(RegExp["$1"]);
        if(fIEVersion == 8) {
		    ...
        }else{
            console.log("---------");
        }
    }

如有不正确的地方请批评指正,互相学习

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159609.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云代码分析
腾讯云代码分析(内部代号CodeDog)是集众多代码分析工具的云原生、分布式、高性能的代码综合分析跟踪管理平台,其主要功能是持续跟踪分析代码,观测项目代码质量,支撑团队传承代码文化。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档