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


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 相关文章推荐
深入理解JavaScript系列(25):设计模式之单例模式详解
Mar 03 Javascript
JS验证IP,子网掩码,网关和MAC的方法
Jul 02 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
Dec 18 Javascript
js获取url传值的方法
Dec 18 Javascript
Validform+layer实现漂亮的表单验证特效
Jan 17 Javascript
JavaScript模拟数组合并concat
Mar 06 Javascript
JavaScript的MVVM库Vue.js入门学习笔记
May 03 Javascript
如何利用JQuery实现从底部回到顶部的功能
Dec 27 Javascript
node.js中使用Export和Import的方法
Sep 18 Javascript
jquery.picsign图片标注组件实例详解
Feb 02 jQuery
node.js开发辅助工具nodemon安装与配置详解
Feb 06 Javascript
ES5新增数组的实现方法
May 12 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
10条PHP编程习惯助你找工作
2008/09/29 PHP
php面向对象全攻略 (六)__set() __get() __isset() __unset()的用法
2009/09/30 PHP
php判断终端是手机还是电脑访问网站的思路及代码
2013/04/24 PHP
详解在PHP的Yii框架中使用行为Behaviors的方法
2016/03/18 PHP
浅谈PHP定义命令空间的几个注意点(推荐)
2016/10/29 PHP
thinkphp3.2框架中where条件查询用法总结
2019/08/13 PHP
extjs 的权限问题 要求控制的对象是 菜单,按钮,URL
2010/03/09 Javascript
javascript new后的constructor属性
2010/08/05 Javascript
javascript倒计时功能实现代码
2012/06/07 Javascript
如何将网页表格内容导入excel
2014/02/18 Javascript
JavaScript怎么判断图片是否加载完成以便获取其尺寸
2014/05/08 Javascript
JS实现图片产生波纹一样flash效果的方法
2015/02/27 Javascript
javascript实现行拖动的方法
2015/05/27 Javascript
浅谈jQuery before和insertBefore的区别
2016/12/04 Javascript
关于AngularJs数据的本地存储详解
2017/01/20 Javascript
完美解决axios在ie下的兼容性问题
2018/03/05 Javascript
js运算符的一些特殊用法
2018/07/29 Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
2018/09/29 Javascript
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
2019/04/17 Javascript
微信小程序按钮点击动画效果的实现
2019/09/04 Javascript
python3实现域名查询和whois查询功能
2018/06/21 Python
聊聊python里如何用Borg pattern实现的单例模式
2019/06/06 Python
django框架使用方法详解
2019/07/18 Python
tensorflow之获取tensor的shape作为max_pool的ksize实例
2020/01/04 Python
Python学习笔记之装饰器
2020/08/06 Python
Python面向对象多态实现原理及代码实例
2020/09/16 Python
Mountain Warehouse波兰官方网站:英国户外品牌
2019/08/29 全球购物
课改先进个人汇报材料
2014/01/26 职场文书
预备党员承诺书
2014/03/25 职场文书
竞聘书怎么写,如何写?
2014/03/31 职场文书
授权委托书
2014/07/31 职场文书
共青团员自我评价范文
2014/09/14 职场文书
医院护士党的群众路线教育实践活动对照检查材料思想汇报
2014/10/04 职场文书
保险内勤岗位职责
2015/04/13 职场文书
上班旷工检讨书
2015/08/15 职场文书
先进党支部事迹材料2016
2016/02/26 职场文书