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


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计算页面刷新的次数
Jul 20 Javascript
jQuery实现的Email中的收件人效果(按del键删除)
Mar 20 Javascript
JQuery操作Select的Options的Bug(IE8兼容性视图模式)
Apr 21 Javascript
Node.js模拟浏览器文件上传示例
Mar 26 Javascript
jQuery实现伸展与合拢panel的方法
Apr 30 Javascript
详解maxlength属性在textarea里奇怪的表现
Dec 27 Javascript
js无提示关闭浏览器窗口的两种方法分析
Nov 06 Javascript
巧用Javascript的逻辑运算符
Dec 02 Javascript
react.js CMS 删除功能的实现方法
Apr 17 Javascript
使用vue如何构建一个自动建站项目
Feb 05 Javascript
jQuery替换节点元素的操作方法
Mar 18 jQuery
vue前端框架—Mint UI详解(更适用于移动端)
Apr 30 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
德生9700DX电路分析
2021/03/02 无线电
JS 网站性能优化笔记
2011/05/24 PHP
php curl模拟post提交数据示例
2013/12/31 PHP
php过滤html中的其他网站链接的方法(域名白名单功能)
2014/04/24 PHP
php支持中文字符串分割的函数
2015/05/28 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
主页面中的两个iframe实现鼠标拖动改变其大小
2013/04/16 Javascript
js操作iframe的一些方法介绍
2013/06/25 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
2013/12/16 Javascript
Underscore.js常用方法总结
2015/02/28 Javascript
使用AngularJS创建单页应用的编程指引
2015/06/19 Javascript
javascript图片滑动效果实现
2021/01/28 Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
2016/02/06 Javascript
jquery插件autocomplete用法示例
2016/07/01 Javascript
省市二级联动小案例讲解
2016/07/24 Javascript
json与jsonp知识小结(推荐)
2016/08/16 Javascript
JS实现图片上传预览功能
2016/11/21 Javascript
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
js实现通过开始结束控制的计时器
2019/02/25 Javascript
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
Node 代理访问的实现
2019/09/19 Javascript
一起写一个即插即用的Vue Loading插件实现
2019/10/31 Javascript
vue中keep-alive、activated的探讨和使用详解
2020/07/26 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
[03:49]DOTA2 2015国际邀请赛中国区预选赛第二日现场百态
2015/05/27 DOTA
解决Python requests 报错方法集锦
2017/03/19 Python
基于python修改srt字幕的时间轴
2020/02/03 Python
Python基于百度AI实现OCR文字识别
2020/04/02 Python
python 基于PYMYSQL使用MYSQL数据库
2020/12/24 Python
HTML5在手机端实现视频全屏展示方法
2020/11/23 HTML / CSS
New Era英国官网:美国棒球帽品牌
2018/03/21 全球购物
Bally美国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/18 全球购物
Ruby如何定义一个类
2012/10/08 面试题
会计专业毕业自荐书范文
2014/02/08 职场文书
好习惯伴我成长演讲稿
2014/05/21 职场文书
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript