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


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 相关文章推荐
关于B/S判断浏览器断开的问题讨论
Oct 29 Javascript
jQuery Tools tab(幻灯片)
Jul 14 Javascript
JQuery 图片的展开和伸缩实例讲解
Apr 18 Javascript
js函数中onmousedown和onclick的区别和联系探讨
May 19 Javascript
js操作iframe父子窗体示例
May 22 Javascript
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
Aug 30 Javascript
深入理解jquery自定义动画animate()
May 24 Javascript
快速理解 JavaScript 中的 LHS 和 RHS 查询的用法
Aug 24 Javascript
node.js学习之断言assert的使用示例
Sep 28 Javascript
浅谈Vue下使用百度地图的简易方法
Mar 23 Javascript
搭建vue开发环境
Jul 19 Javascript
浅谈Vue中render中的h箭头函数
Nov 07 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+Javascript实现在线拍照功能实例
2015/07/18 PHP
php版微信公众号自定义分享内容实现方法
2016/09/22 PHP
分享PHP-pcntl 实现多进程代码
2016/09/30 PHP
php正则判断是否为合法身份证号的方法
2017/03/16 PHP
extjs tabpanel限制选项卡数量实现思路及代码
2013/04/02 Javascript
js跑步算法的实现代码
2013/12/04 Javascript
原生JavaScript生成GUID的实现示例
2014/09/05 Javascript
jQuery对指定元素中指定字符串进行替换的方法
2015/03/17 Javascript
js判断日期时间有效性的方法
2015/10/24 Javascript
Angularjs整合微信UI(weui)
2016/03/15 Javascript
vue如何引用其他组件(css和js)
2017/04/13 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
2017/07/03 Javascript
使用JS模拟锚点跳转的实例
2018/02/01 Javascript
为vue项目自动设置请求状态的配置方法
2019/06/09 Javascript
vue+element模态框中新增模态框和删除功能
2019/06/11 Javascript
[01:02:03]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS VG
2014/05/26 DOTA
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
17个Python小技巧分享
2015/01/23 Python
python获取代理IP的实例分享
2018/05/07 Python
python基于http下载视频或音频
2018/06/20 Python
在Python运行时动态查看进程内部信息的方法
2019/02/22 Python
python如何实现异步调用函数执行
2019/07/08 Python
python 实现朴素贝叶斯算法的示例
2020/09/30 Python
python利用appium实现手机APP自动化的示例
2021/01/26 Python
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
ECCO英国官网:丹麦鞋履品牌
2019/09/03 全球购物
在职研究生自我鉴定
2013/10/16 职场文书
数控技术专科生自我评价
2014/01/08 职场文书
安全标准化实施方案
2014/02/20 职场文书
教师师德承诺书
2014/03/26 职场文书
《春到梅花山》教学反思
2014/04/16 职场文书
教师个人自我剖析材料
2014/09/29 职场文书
群众路线组织生活会发言材料
2014/10/17 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
ThinkPHP5和ThinkPHP6的区别
2021/03/31 PHP
Win11使用CAD卡顿或者致命错误怎么办?Win11无法正常使用CAD的解决方法
2022/07/23 数码科技