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


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 相关文章推荐
jsonp原理及使用
Oct 28 Javascript
详谈javascript中的cookie
Jun 03 Javascript
jQuery自动添加表单项的方法
Jul 13 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
Jan 28 Javascript
Angular.js中上传指令ng-upload的基本使用教程
Jul 30 Javascript
AngularJS中controller控制器继承的使用方法
Nov 03 Javascript
用ES6的class模仿Vue写一个双向绑定的示例代码
Apr 20 Javascript
vue单页缓存存在的问题及解决方案(小结)
Sep 25 Javascript
微信小程序—setTimeOut定时器的问题及解决
Jul 26 Javascript
基于ssm框架实现layui分页效果
Jul 27 Javascript
Vue如何实现监听组件原生事件
Jul 03 Javascript
在vue中使用inheritAttrs实现组件的扩展性介绍
Dec 07 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
不要轻信 PHP_SELF的安全问题
2009/09/05 PHP
ThinkPHP中URL路径访问与模块控制器之间的关系
2014/08/23 PHP
Laravel 5.0 发布 新版本特性详解
2015/02/10 PHP
YII Framework教程之异常处理详解
2016/03/14 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
2017/03/28 PHP
PHP函数积累总结
2019/03/19 PHP
Javascript中的数学函数
2007/04/04 Javascript
ExtJS 2.0实用简明教程 之获得ExtJS
2009/04/29 Javascript
学习ExtJS TextField常用方法
2009/10/07 Javascript
javascript 带有滚动条的表格,标题固定,带排序功能.
2009/11/13 Javascript
js中巧用cssText属性批量操作样式
2011/03/13 Javascript
分享20款好玩的jQuery游戏
2011/04/17 Javascript
JQuery实现的图文自动轮播效果插件
2015/06/19 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
2016/04/18 Javascript
JS解决position:sticky的兼容性问题的方法
2017/10/17 Javascript
Js利用prototype自定义数组方法示例
2017/10/20 Javascript
浏览器调试动态js脚本的方法(图解)
2018/01/19 Javascript
vue实现的仿淘宝购物车功能详解
2019/01/27 Javascript
在vue中使用cookie记住用户上次选择的实例(本次例子中为下拉框)
2020/09/11 Javascript
[01:13]2015国际邀请赛线下观战现场
2015/08/08 DOTA
Python fileinput模块使用介绍
2014/11/30 Python
python使用sorted函数对列表进行排序的方法
2015/04/04 Python
Pyhton中单行和多行注释的使用方法及规范
2016/10/11 Python
用Eclipse写python程序
2018/02/10 Python
Python实现的各种常见分布算法示例
2018/12/13 Python
Sneaker Studio匈牙利:购买运动鞋
2018/03/26 全球购物
联欢晚会主持词
2014/03/25 职场文书
学校搬迁方案
2014/06/15 职场文书
主题团日活动总结
2014/06/25 职场文书
工地门卫岗位职责范本
2014/07/01 职场文书
领导干部个人整改措施落实情况汇报
2014/10/29 职场文书
2014年驾驶员工作总结
2014/11/18 职场文书
旷课检讨书范文
2015/01/27 职场文书
音乐研修感悟
2015/11/18 职场文书
python源码剖析之PyObject详解
2021/05/18 Python
centos环境下nginx高可用集群的搭建指南
2022/07/23 Servers