大家好,又见面了,我是你们的朋友全栈君。
本文主要是从程序猿的角度进行分析的,致力于提供解决问题的思路,而不是盲目的从网上百度
关于页面错误: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账号...