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


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 相关文章推荐
Jquery对象和Dom对象的区别分析
Nov 20 Javascript
PHP结合jQuery实现的评论顶、踩功能
Jul 22 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
Mar 28 Javascript
JS实现点击网页判断是否安装app并打开否则跳转app store
Nov 18 Javascript
JavaScript 限制文本框不可输入英文单双引号的方法
Dec 20 Javascript
Vue.js实现简单动态数据处理
Feb 13 Javascript
Jil,高效的json序列化和反序列化库
Feb 15 Javascript
bootstrap table实现单击单元格可编辑功能
Mar 28 Javascript
AngularJS 异步解决实现方法
Jun 12 Javascript
关于react-router的几种配置方式详解
Jul 24 Javascript
JavaScript用document.write()输出换行的示例代码
Nov 26 Javascript
vue实现列表垂直无缝滚动
Apr 08 Vue.js
再谈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
PhpMyAdmin中无法导入sql文件的解决办法
2010/01/08 PHP
php unset全局变量运用问题的深入解析
2013/06/17 PHP
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
2011/08/28 Javascript
JavaScript中把数字转换为字符串的程序代码
2013/06/19 Javascript
jQuery标签替换函数replaceWith()的使用例子
2014/08/28 Javascript
node.js中的fs.fchownSync方法使用说明
2014/12/16 Javascript
jquery的ajax提交form表单的两种方法小结(推荐)
2016/05/25 Javascript
两种简单的跨域方法(jsonp、php)
2017/01/02 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
2017/04/10 Javascript
jQuery实现动态给table赋值的方法示例
2017/07/04 jQuery
jQuery Easyui Treegrid实现显示checkbox功能
2017/08/08 jQuery
nodejs 图解express+supervisor+ejs的用法(推荐)
2017/09/08 NodeJs
php 解压zip压缩包内容到指定目录的实例
2018/01/23 Javascript
vue-cli 脚手架基于Nightwatch的端到端测试环境的过程
2018/09/30 Javascript
解决Python中字符串和数字拼接报错的方法
2016/10/23 Python
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
2017/08/23 Python
pandas数据处理基础之筛选指定行或者指定列的数据
2018/05/03 Python
Python使用matplotlib 模块scatter方法画散点图示例
2019/09/27 Python
树莓派极简安装OpenCv的方法步骤
2019/10/10 Python
pytorch 实现查看网络中的参数
2020/01/06 Python
利用python画出AUC曲线的实例
2020/02/28 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
2020/03/23 Python
Python 字典一个键对应多个值的方法
2020/09/29 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
2021/02/03 Python
团员的自我评价
2013/12/01 职场文书
上班上网检讨书
2014/01/29 职场文书
建筑安全责任书范本
2014/07/24 职场文书
机关作风建设整改方案
2014/10/27 职场文书
市场营销计划书
2015/01/17 职场文书
2015年房产销售工作总结范文
2015/05/22 职场文书
遗嘱范文
2015/08/07 职场文书
2016教师读书思廉心得体会
2016/01/23 职场文书
fastdfs+nginx集群搭建的实现
2021/03/31 Servers
golang 如何用反射reflect操作结构体
2021/04/28 Golang
Python实现打乒乓小游戏
2021/09/25 Python
Python实现GIF动图以及视频卡通化详解
2021/12/06 Python