一个js的怪异问题排查经过
最近不知道怎么了,老是碰到各种怪异问题,查起来费半天劲,最后查出来其实不是代码的问题,囧...
今天又碰到个js的怪异问题,特地记录以免以后再走弯路。
页面的代码如下:
这段代码是Discuz!7.0的悬浮广告和对联广告的代码。
页面输出后的源码为:
在chrome的开发者工具下看到有如下的报错:
Uncaught ReferenceError: theFloaters is not defined
theFloaters这个是在include/js/floatadv.js文件里定义的,前面明明已经引入了此文件,怎么出现未定义这样的报错呢?
跟模板文件的代码比对后,发现在引入floatadv.js文件的js后面多了一段style样式代码,如下:
style="display: none; visibility: hidden; "
查过代码发现没有地方会有增加这段style的地方,而且在chrome开发者工具的script标签下居然也找不到floatadv.js这个文件,但是网络标签下明明加载了这个文件。
查了半天,突然想起来会不会是广告过滤扩展搞的鬼,因为这个js的文件名里带有ad。
禁用掉ABP扩展后再试,悬浮和对联广告全出来了,也没有了之前的报错。
内牛满面啊,扩展你丫太强大了也!!