js报错函数没有定义Uncaught ReferenceError: xxx is not defined出现的另类问题,原因排查
在浏览器渲染完html页面中报出一个js错误:Uncaught ReferenceError: xxx is not defined,如图:
这个问题应该很简单,没有定义,却耽误我比较长的时间去解决。
在我查看了所有js文件和页面都没有找到原因,也没有引用什么main.js文件,最后一点点的排查,发现有个图片引入有问题,如下:
<img src="/images/view/commonfoot/icon_kefu.jpg"/>
这段代码去掉就不会报错了,或者把图片icon_kefu.jpg名字改了,发现也不报错了,这不科学,图片引入和命名怎么可能会报js错误!
虽然找到了问题所在,但是依然不知道原因,最后一点点的排查发现引用了一个外部js文件貌似有问题,然后在引用的外部js源码中梳理逻辑发现又请求了一个外部路径,然后在请求的外部路径里又引用了一个外部js文件,名字叫main.js,分析main.js源码时发现里边竟然有一段代码图片命名和我的相同,也是icon_kefu.jpg,然后我的页面中已经存在,在main.js中会判断图片是否存在然后执行了一段代码,webcallUtil没有定义报的错误,终于找到原因了,外部的js就不管了,修改一下我的页面引用图片名称即可。
此问题就是没有定义,当排查自己引入的js没有问题时也不要忘记排查引入的外部js,如果是外部js报错就比较隐蔽性,比较另类,如果难以解决就取消或者更换外部js引入的问题。