群里一朋友Q我,说遇到兼容性问题了,我说为何不用jQuery呢(因为他们公司要求尽量js写)。
他说用了,还是有问题,IE6下不行,其他都行、
然后他发我代码,我一开始真以为是兼容性问题,比如数组对象最后的逗号,如:

var arr = [1, 2, 3,];
var obj = {a:1, b:2, c:3,};

这个在IE8-下是不行的,其他浏览器却没问题、(这些天好多人问我,发现都是这个问题,所以潜意识以为是了)
可是找遍了对象数组,也没发现问题,然后开始顺藤摸瓜去读他写的代码、
依然没发现兼容性问题、
最后没办法 alert 大法、
发现不是我要的元素,也不是页面上的元素、
我就郁闷了,最后看html才发现,

<!--[if IE 6]>
<script src="/js/DD_belatedPNG.js"></script>
<script>
DD_belatedPNG.fix("img,a,div,span,li,p,dt,dd,em,.sj_frist")
</script>
<![endif]-->

现在我知道问题在哪了,DD_belatedPNG会生成类似这样的vml元素

<?XML:NAMESPACE PREFIX=D D_belatedPNG NS="urn:schemas-microsoft-com:vml" />
<DD_belatedPNG:shape style="LEFT: 0px; WIDTH: 19px; CLIP: rect(1px 19px 19px 1px); TOP: 0px; HEIGHT: 19px" jQuery18208800624770577148="26" coordsize="19,19" coordorigin="1,1" filled="t" fillcolor="none" stroked="f" path=" m0,0 l19,0,19,19,0,19 xe">
<DD_belatedPNG:fill src="http://images.cnblogs.com/but2.png" type="tile" position="3449f,3449f"></DD_belatedPNG:fill>
</DD_belatedPNG:shape>
</?XML:>

虽然这样一般是影响不到的, 但是他用到了index()方法,所以就无法取得真正的索引值了、
如果有用到 children() 之类而且不加选择器的,必然也会受到影响、
所以只能在写代码的时候严谨点、

其实还有一个非常简单的方法,用 DD_belatedPNG 的时候详细指定要透明的元素、
而不是像他这样 img,a,div,span,li,p,dt,dd,em 范围太广了、
而且他的那个元素上根本就没有png图片、
所以我建议 DD_belatedPNG 的选择器写的详细些,只给用png并且透明的元素用,不然性能差不说,功能冲突就麻烦了、
比如单独给png的元素添加一个 .fixpng 的 class 这样 DD_belatedPNG.fix(".fixpng"); 就OK了,
页面上也只要加一个 class 就可以了,不是很方便么、

IE6 下 DD_belatedPNG 引发的血案的更多相关文章

  1. Replication的犄角旮旯(七)-- 一个DDL引发的血案(下)(聊聊logreader的延迟)

    <Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Repli ...

  2. PNG24在ie6下的完美解决方法!(DD_belatedPNG)

    原网址:http://www.zjgsq.com/1629.html 之前写过一篇<js+css滤镜设置解决PNG24在IE6下显示问题> 解决方法不是很完美,使用起来也比较麻烦. DD_ ...

  3. 解决IE6下PNG透明的JS插件:DD_belatedPNG.js

    DD_belatedPNG是一款解决IE6下PNG透明的JS插件,支持background-position和background-repeat属性,支持伪类.使用方法: <!--[if lte ...

  4. IE6下png格式图片显示问题

    一开始是使用 _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/bgBtn.png'); /* IE6 * ...

  5. dubbox微服务实例及引发的“血案”

    Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成. 主要核心部件: Remoting: 网络通信框架 ...

  6. Replication的犄角旮旯(六)-- 一个DDL引发的血案(上)(如何近似估算DDL操作进度)

    <Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Repli ...

  7. 解决IE6下png图片透明度不显示的问题

    世界上最遥远的距离,不外乎我在搞前端,你却在用旧IE,现在随着XP要退休了,IE6的市场占有率应该也会逐步下滑.不过基于天朝人民的惰性以及企鹅微软的“扎篱笆”活动,做网站的朋友依旧不能忽视IE6的存在 ...

  8. 转:一个Sqrt函数引发的血案

    转自:http://www.cnblogs.com/pkuoliver/archive/2010/10/06/1844725.html 源码下载地址:http://diducoder.com/sotr ...

  9. 解决IE6下png图片不透明

    ie6着实是非常让人讨厌,显示一张图片,也要带着灰白色的背景色,一张好好的png图片就这么不透明了. 用n多中网上的方式,差点成功的就还有这个了 _background: none; _filter: ...

随机推荐

  1. 汇编语言段和RSEG用法

    RSEG是段选择指令,要想明白它的意思就要了解段的意思.段是程序代码或数据对象的存储单位.程序代码放到代码段,数据对象放到数据段.段分两种,一是绝对段,一是再定位段.绝对段在汇编语言中指定,在用L51 ...

  2. #Leetcode# 817. Linked List Components

    https://leetcode.com/problems/linked-list-components/ We are given head, the head node of a linked l ...

  3. PAT 甲级 1001 A+B Format

    https://pintia.cn/problem-sets/994805342720868352/problems/994805528788582400 Calculate a + b and ou ...

  4. shutdown&&isTerminated

    shutdownvoid shutdown()启动一次顺序关闭,执行以前提交的任务,但不接受新任务.若已经关闭,则调用没有其他作用.抛出:SecurityException - 如果安全管理器存在并且 ...

  5. vim出现自动补全的问题

    当使用vim编辑文件自动补全文件名称的时候,可能会出现_arguments:451: _vim_files: function definition file not found的错误,这个时候一般都 ...

  6. [转帖]HR职能划分三支柱模型

    HR职能划分三支柱模型 http://blog.sina.com.cn/s/blog_afbd12640101o5hf.html COE(Centre of Excellence or Center ...

  7. SQLSERVER2017 最新补丁发布方式

    SQLSERVER2017 开始已经没有 SP service pack 包了. 取而代之的是CU 包 cumulative update 见: https://support.microsoft.c ...

  8. Delphi : keydown与keypress的区别,组合键

    Shift 是一个集合变量. type TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDoubl ...

  9. HDU2665_Kth number

    给一个数组,求区间[l,r]中第k大的数. 今天被各种数据结构虐爆了,自己还是需要学习一下函数式线段树的,这个东西好像还挺常用. 函数式线段树的思想是这样的,对于每个时间状态,我们都建立一颗线段树,查 ...

  10. QPainter 基础绘图

    调用QPainter的接口来绘制一些基本的图形 头文件: #include <QMainWindow> #include <QPainter> namespace Ui { c ...