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

关于浏览器报错:stack overflow at line: 0 的解决法本文主要是从程序猿的角度进行分析的,致力于提供解决问题的思路,而不是盲目的从网上百度关于页面错误:stackoverflowatline:0 很明白,就是堆栈的溢出!所以,导致的原因也很清楚,无非就是页面中出现了类似于递归式的无线循环而导致的,所以可能出现的原因就很明晰了:1.浏览器对图片,js等引用进入了无线循环这时候出错的原因,无非是图片路径不正确或者引用多个相同的js…

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

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

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

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

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

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

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

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

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

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

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

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


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

  //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("---------");
        }
    }

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

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • pycharm每次运行需选择interpreter_pycharm怎么配置python环境变量

    pycharm每次运行需选择interpreter_pycharm怎么配置python环境变量在运行时就出现了下图情况,也不知道咋回事,之前删了些以为没用的文件夹,估计是删错了,环境没了。关闭后上面窗口后打开Settings→projectInterpreter选项你里面可能有多个,可以删掉重新添加一个有可能会遇到目录不为空的情况,因为你之前可能创建过这个文件路径啥的复制下面的路径,进去删掉原来的路径里的文件夹。然后再点击ok,重新创建一个…

  • 基于arduino的lcd1602显示_LCD1602接口类型

    基于arduino的lcd1602显示_LCD1602接口类型Arduino小实验LCD1602A_I2C液晶显示魔法传送门Arduino小实验LCD1602A_I2C液晶显示准备元件LCD1602A原理图接线部分Arduino代码常见bug汇总及解决方法准备元件准备元件:1.Arduino主板(UNO)//Arduino主板(Mega)崭新出厂2.LCD1602A液晶显示屏3.LCD1602A的驱动—PCF8574驱动板LCD1602A原理图接线部分ArduinoMega:ArduinoUNO实物图Arduino代码常见bug汇总

  • pcanywhere设置主控端_redis修改端口

    pcanywhere设置主控端_redis修改端口  有些防火墙只允许一个pcAnywhere被控端使用一个IP端口。而防火墙后面的其它pcAnywhere被控端必须使用另外的端口。希望知道如何更改这些端口。   更改pcAnywhereIP端口需要编辑Windows注册表。如果需要频繁的执行此操作,创建.reg文件是最安全也是最方便的更改方法。尤其对于那些可能需要连接_blank”>防火墙后多个被控端的主控端而

  • EL表达式语法「建议收藏」

    EL表达式语法「建议收藏」EL(是ExpressionLanguage的缩写),使用EL对JSP输出进行优化,可以使得页面结构更加清晰,代码可读性高,也更加便于维护。使用EL表达式的目的:从作用域中获取指定属性名的共享数据<%@pageisELIgnored=”true”%>表示是否禁用EL语言,TRUE表示禁止.。FALSE表示不禁。1、EL表达式的语…

  • Qualcomm QXDM工具简介和log抓取[通俗易懂]

    Qualcomm QXDM工具简介和log抓取[通俗易懂]高通工具简介QXDM简介QXDM安装QXDM激活QXDM使用AT打开Diagnostic口QXDM配置1MessageViewConfigurationMessagePacketsLogPacketsLogPacketsOTAEventReportsStrings2…

  • matlab自带的插值函数interp1的几种插值方法[通俗易懂]

    matlab自带的插值函数interp1的几种插值方法[通俗易懂]插值法    插值法又称“内插法”,是利用函数f(x)在某区间中已知的若干点的函数值,作出适当的特定函数,在区间的其他点上用这特定函数的值作为函数f(x)的近似值,这种方法称为插值法。如果这特定函数是多项式,就称它为插值多项式。线性插值法    线性插值法是指使用连接两个已知量的直线来确定在这两个已知量之间的一个未知量的值的方法。    假设我们已知坐标(x0,y0)与…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号