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


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控制表格隔行变色
Jun 26 Javascript
自动更新作用
Oct 08 Javascript
js/jquery判断浏览器的方法小结
Sep 02 Javascript
使用jQuery实现图片遮罩半透明坠落遮挡
Mar 16 Javascript
javascript事件冒泡实例分析
May 13 Javascript
JavaScript的设计模式经典之建造者模式
Feb 24 Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
Jan 04 Javascript
vue2笔记 — vue-router路由懒加载的实现
Mar 03 Javascript
jQuery序列化后的表单值转换成Json
Jun 16 jQuery
加快Vue项目的开发速度的方法
Dec 12 Javascript
JavaScript递归函数定义与用法实例分析
Jan 24 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
Dec 09 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 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
2012/04/09 PHP
PHP基础陷阱题(变量赋值)
2012/09/12 PHP
PHP中__FILE__、dirname与basename用法实例分析
2014/12/01 PHP
PHP使用JSON和将json还原成数组
2015/02/12 PHP
jqPlot Option配置对象详解
2009/07/25 Javascript
常见效果实现之返回顶部(结合淡入、淡出、减速滚动)
2012/01/04 Javascript
js+css实现增加表单可用性之提示文字
2013/06/03 Javascript
CheckBoxList多选样式jquery、C#获取选择项
2013/09/06 Javascript
js 数组操作之pop,push,unshift,splice,shift
2014/01/29 Javascript
node.js中的buffer.fill方法使用说明
2014/12/14 Javascript
jQuery中children()方法用法实例
2015/01/07 Javascript
深入分析Cookie的安全性问题
2015/03/01 Javascript
JavaScript仿淘宝页面图片滚动加载及刷新回顶部的方法解析
2016/05/24 Javascript
jQuery.form.js的使用详解
2017/06/14 jQuery
[js高手之路]从原型链开始图解继承到组合继承的产生详解
2017/08/28 Javascript
vue实现在线预览pdf文件和下载(pdf.js)
2019/11/26 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
2019/12/22 Javascript
javascript中可能用得到的全部的排序算法
2020/03/05 Javascript
浅析 Vue 3.0 的组装式 API(一)
2020/08/31 Javascript
详解Python中time()方法的使用的教程
2015/05/22 Python
举例详解Python中yield生成器的用法
2015/08/05 Python
简单谈谈python的反射机制
2016/06/28 Python
python实现Windows电脑定时关机
2018/06/20 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
2019/06/17 Python
linux环境下Django的安装配置详解
2019/07/22 Python
python 内置函数汇总详解
2019/09/16 Python
Python使用shutil模块实现文件拷贝
2020/07/31 Python
使用postMessage让 iframe自适应高度的方法示例
2019/10/08 HTML / CSS
优衣库澳大利亚官网:UNIQLO澳大利亚
2017/01/18 全球购物
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
生物制药专业自我鉴定
2014/02/19 职场文书
热门专业求职信
2014/05/24 职场文书
体育节口号
2014/06/19 职场文书
2015年艾滋病防治工作总结
2015/05/22 职场文书
公司中层管理培训心得体会
2016/01/11 职场文书
Golang 实现获取当前函数名称和文件行号等操作
2021/05/08 Golang