前两天,在工作中遇到一个奇怪的问题了,搞了好久才搞定。写出来,下次遇到类似的好有所借鉴。
我在做一个页面特效时(javascript实现),当点击某个按钮时,通过JS改变一个现有的div层位置。在改变div的位置后,我通过document.getElementById()方法去获取该DIV层中的某个元素时,在IE中没任何问题,但是在遨游中却发现得到的是null。开始我还以为是document.getElementById()方法有问题,或是遨游不支持该方法什么的。可是经过调试发现该方法没什么问题,而是在重定位DIV层之后,整个DIV层都消失了。我百思不得其解,后来在网上搜了下,才知道原来是遨游的过滤功能引起的,它把我重定位的那个DIV层作为浮动广告给过滤掉了。遨游的浮动广告过滤功能的实现中,对浮动层判定为广告的主要依据是:
1、层的位置改变
2、层内夹带有链接标签。我一看第一个条件满足了;再看看DIV层中也有"<a"标签,第二个条件也满足了,难怪当我重地位DIV层时它就消失了,原来是被过滤掉了(即从网页内容上被移除)。我想无链接的移动层应该不会被过滤吧,于是便把“<a”标签去掉,调试一把,果然OK了。我想弹出层应该也会存在这样的问题,所以以后要做这样的特效,DIV层中就不能直接带连接即带“<a”标签,要实现链接功能可通过调用函数,在函数中实现。
关于遨游等浏览器对浮动广告过滤引起的网页js错误
