超级兔子让浮动层消失的前因后果


Posted in Javascript onMarch 09, 2007

刚搞定了瑞星卡卡,又冲来个超级兔子。不过超级兔子的枪法真的有待改善。

还是同样的问题:安装了超级兔子IE工具条的用户购买自动发货商品时,LightBox形式的购买提醒框刚一显示就消失了。而灰蒙的遮蔽层依然显示,用户又无法继续操作了。

根据研究,超级兔子对屏蔽广告的屏蔽原则更为武断,只要是在JavaScript代码中出现类似 “div.style.position=absolute” 的代码,div 就会被隐藏,不仅如此,超级兔子还会检查页面中的元素,只要一个元素以inline形式设置了position样式属性以及配套的任一个top/left属性,比如”<div style=”position:absolute;top:0;”>xxx</div>”,那么也会将其隐藏。

但与瑞星卡卡不同之处在于,超级兔子并不会把绝对定位元素从DOM中抹除。而是设置元素的style.visibility = hidden。这就是为什么自动发货的购买提醒框消失的原因。

如何避免超级兔子的枪盲目射击呢?其实很简单,不要用JavaScript 或者以inline的形式设置绝对定位相关的CSS属性即可。可以把这些CSS属性直接通过class或id的形式定义在样式单文件或<style/>中(本来也应该这么做)。

如果不得不用JavaScript设置绝对定位属性,比如一些菜单/动画的效果。就要通过脚本的办法来解决了,还记得超级兔子和瑞星卡卡对浮动广告的处理区别吗?伪码可能如下:

<script type=”text/javascript”>  
function setPosition() {  
    FloatLayer.style.top = y;  
    FloatLayer.style.left = x;  
    setTimeout(checkSR, 100);  
}  
function checkSR() {  
    if (FloatLayer.currentStyle && FloatLayer.currentStyle.visibility=='hidden'))  
        fixUp();  
}  
</script>  

我也痛恨浮动广告,可是淘宝的页面真的很干净了,不是吗

Javascript 相关文章推荐
将文本输入框内容加入表中的js代码
Aug 18 Javascript
append和appendTo的区别以及appendChild用法
Dec 24 Javascript
js报$ is not a function 的问题的解决方法
Jan 20 Javascript
JS+CSS实现的蓝色table选项卡效果
Oct 08 Javascript
javascript学习指南之回调问题
Apr 23 Javascript
JS常用算法实现代码
Nov 14 Javascript
详谈js中数组(array)和对象(object)的区别
Feb 27 Javascript
MUI 上拉刷新/下拉加载功能实例代码
Apr 13 Javascript
create-react-app构建项目慢的解决方法
Mar 14 Javascript
vue的传参方式汇总和router使用技巧
May 22 Javascript
JavaScript遍历查找数组中最大值与最小值的方法示例
May 24 Javascript
js+canvas实现画板功能
Sep 13 Javascript
再谈IE中Flash控件的自动激活 ObjectWrap
Mar 09 #Javascript
javascript的对话框详解与参数
Mar 08 #Javascript
打开超链需要“确认”对话框的方法
Mar 08 #Javascript
javascript学习随笔(使用window和frame)的技巧
Mar 08 #Javascript
关于使用runtimeStyle属性问题讨论文章
Mar 08 #Javascript
用js判断用户浏览器是否是XP SP2的IE6
Mar 08 #Javascript
在IE模态窗口中自由查看HTML源码的方法
Mar 08 #Javascript
You might like
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
php中preg_replace_callback函数简单用法示例
2016/07/21 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
javascript 流畅动画实现原理
2009/09/08 Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
2015/02/25 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
jQuery遍历DOM元素与节点方法详解
2016/04/14 Javascript
AngularJS 入门教程之事件处理器详解
2016/08/19 Javascript
jquery获取input type=text中的值的各种方式(总结)
2016/12/02 Javascript
本地搭建微信小程序服务器的实现方法
2017/10/27 Javascript
vue轮播图插件vue-concise-slider的使用
2018/03/13 Javascript
详解vue开发中调用微信jssdk的问题
2019/04/16 Javascript
js实现树形数据转成扁平数据的方法示例
2020/02/27 Javascript
Javascript实现简易天数计算器
2020/05/18 Javascript
js实现复制粘贴的两种方法
2020/12/04 Javascript
利用django-suit模板添加自定义的菜单、页面及设置访问权限
2018/07/13 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
Python中函数参数匹配模型详解
2019/06/09 Python
Django使用unittest模块进行单元测试过程解析
2019/08/02 Python
使用python 对验证码图片进行降噪处理
2019/12/18 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
2020/02/25 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
2020/04/25 Python
python 使用raw socket进行TCP SYN扫描实例
2020/05/05 Python
django 数据库返回queryset实现封装为字典
2020/05/19 Python
numpy 矩阵形状调整:拉伸、变成一位数组的实例
2020/06/18 Python
使用OpenCV去除面积较小的连通域
2020/07/05 Python
python实现经纬度采样的示例代码
2020/12/10 Python
Python爬虫UA伪装爬取的实例讲解
2021/02/19 Python
CSS3颜色值RGBA与渐变色使用介绍
2020/03/06 HTML / CSS
ASOS英国官网:英国在线时装和化妆品零售商
2017/05/19 全球购物
介绍一下linux的文件权限
2012/02/15 面试题
班班通项目实施方案
2014/02/25 职场文书
优秀德育工作者事迹材料
2014/05/07 职场文书
党旗在我心中演讲稿
2014/09/15 职场文书
房地产工程部经理岗位职责
2015/04/09 职场文书
MySQL中几种插入和批量语句实例详解
2021/09/14 MySQL