IE6 + Png + Fixpng 之后的Png图片点击时报错Bug及其解决方案

fixpngWindows:让PNG图片在Windows系统中正常预览 PNG(Portable Network Graphics)是一种无损压缩的位图图形格式,广泛用于网络上图像的存储与传输。它由PNG工作小组于1995年发布,旨在取代GIF格式,支持24位彩色图片并且具有优良的透明度支持。PNG格式采用无损压缩算法,这意味着图片在压缩过程中不会丢失任何数据或细节,因此特别适合需要高质量图像的应用场景。Windows操作系统中负责图像处理的组件主要包括Windows Shell Image和Direct2D。 阅读详情

众所周知,IE6 + Png 有透明效果显示的Bug。

这个问题有很多达人提出了解决方案,其中包括广为流传的fixpng.js

但很少有人提到,在使用fixpng.js进行修正之后,当点击Png图片时,IE6报错。

如果关闭了IE中的允许脚本调试选项,也许这个错误不会在网页上弹出窗口提示,但经测试证明,如果置之不理,在神奇的IE6中,错误可能象癌细胞一样转移,最终在你想象不到的地方蹦出来,产生致命的影响。

 

因此,解决它,而不是回避它,才是正确的态度。

 

以下是我的解决方案:

 

网页上的Png图片可以分为两类,一种是单纯用于显示的,另外一种可能被封装在某些元素之内,这些元素要能捕捉Click事件,激发某些网页内的数据操作或者打开新网页。

 

1)单纯用于显示的Png图片

将图片封装在<span>中,定义它的类标识为pngSpan,如:

<span class="pngSpan"><img src="xxx.png" class="fixpng" /></span>

用Javascript拦截所有对这些图片的点击:

    $(".pngSpan").click(function(){
        return false;
    });

注:以上$(...)是Jquery框架下的用法,在别的框架下写法应相应调整。

如上,则点击事件被封装元素<span>提前捕获,并强行中止,png图片元素无法捕获点击事件。

 

 

2)被封装在待点击元素内的Png图片

幸运的是,对于一般的Html元素, 在IE6下点击事件是先被外部元素捕捉到,之后才传递到内部的Png图片元素。在这种情况下,只需要注意在click事件处理完毕后不要忘记以“return false;” 语句结尾,就可以自然截断点击事件向Png图片传递。如:

<div id="x_div"><img src="xxx.png" class="fixpng" /></div>

相应的Js代码为:

    $("#x_div").click(function(){

        ...... // 事务处理代码
        return false; //不可省略

    });

 

对于<a>元素,情况有所不同,点击事件是先被其内部的图片元素捕获,之后才触发<a>元素打开新链接的操作,因此如果如方法1那样用<span class="pngSpan"></span>来封装Png图片,则<a>元素无法正常打开新连接。解决方法是给所有封装了Png图片的<a>元素加上类标识'pngA',再用Javascript来控制打开连接的工作:

Html

    <a class="pngA" href="XXX.html"><img src="xxx.png" class="fixpng"/></a>

Javascript

    $(".pngA").click(function(){
        if ($(this).attr("target") == "_blank")
            window.open($(this).attr("href")); //在新窗口中打开连接
        else
            window.location=$(this).attr("href"); //在原窗口中打开连接
        return false; //不可省略
    });

 

以上,总计约10行Js代码,就能解决这个Bug了。

 

iphone-fixpng IPhone PNG图片转换器 iphone软件安装包图片转换器 将里面无法预览的PNG图片转换成正常的PNG图片 立即下载

相关推荐

png修复工具

文章http://my.oschina.net/penngo/blog/168420附件,已带jre

fixpng插件

(function($){ $.fn.fixpng=function(options){ var opts=$.extend({},$.fixpng.defaults,options); var version = parseFloat(navigator.appVersion.split("MSIE")[1]); if ((opts.allIE || (version >=

明亮的专栏 1193

fixpngwindows

fixpngwindows.rar iphone反编译 图片文件,轻松获取ipa文件中的图片资源,只供学习交流,切勿用于不发用途

IE PNG Fix—让IE6完美支持PNG透明图片的插件

<br />众所周知,ie6的占有率和它的众多bug总是让设计师们头痛不已,其中一点就是对png-24的支持非常糟糕。过去的解决方案也总是不尽完美,不过现在ie png fix出现了,一举解决了这个讨厌的问题,现在我们可以尽情在web设计中使用png-24图像了:)。<br />IE PNG Fix 2.0 Alpha 4<br />This script adds near-native PNG support with alpha opacity to IE 5.5 and 6. Now you can

1574

fixpngWindows

iphone软件安装包图片转换器 将里面无法预览的PNG图片转换成正常的PNG图

HDMI2.1/eDP TX接口设计:

HDMI2.1向下兼容,HDMI2.1工作在FRL模式,HDMI2.0工作在TMDS模式。因此采用AC耦合电压模式驱动器。一般采用220nF,封装建议0201。,但是协议要求,往 CEC 管脚通过 27K 电阻加 3.3V 电压,漏电不允许超过。NOTE:如果只需要支持 HDMI2.0 及以下模式时, MOS管也不能省掉。DDC_SCL/DDC_SDA 协议规定是。HDMI2.0模式:配置为高,MOS导通。HDMI2.1模式:配置为低,MOS不导通。,必须增加电平转换电路。形成直流偏置,大约3V。

qq_40010777的博客 7857

关于png显示问题的补充一:实际方法

1.在此发一个我自己写的最简pngfix的js函数专用于页面中插入的png图片(基于jquery) $(function(){fixPng();}) function fixPng(){  if(isIE()){   $("img[src$=.png]").each(function(){    var img=$(this).attr("src");    $(this).att

zizhulindan的专栏 288

kaggle项目:纽约出租车行程时间NYC Taxi Trip Duration

纽约出租车形成时间预测(NYC Taxi Trip Duration)是Kaggle中的一个Playground竞赛。比赛数据集基于2016年纽约市黄色出租车行程记录数据,需要建立一个模型,根据单个行程属性,预测测试集中每次行程的持续时间。Kaggle项目模型XGBoost,评价指标RMSLE。

weixin_42113929的博客 2790

修复png工具

为什么80%的码农都做不了架构师?>>> ...

weixin_33712987的博客 1395

动量因子在A股市场的有效性分析:量化实证研究

验证动量因子在A股市场的有效性及时间周期性分析不同时间窗口(短期/中期/长期)对动量效应的影响量化交易成本、市场流动性对动量策略收益的侵蚀程度比较A股与成熟市场(如美股)动量效应的差异特征理论框架:行为金融学解释动量效应的产生机制技术实现:Python全流程代码实现动量因子计算与回测实证分析:统计检验、风险收益指标、敏感性分析应用拓展:结合市场微观结构的策略优化方案动量因子(Momentum Factor)

2501_92132293的博客 2473

全志A527 T527 android13支持usb摄像头

我们发现usb摄像头在A527 android13上面并不能正常使用,需要支持相关的摄像头。

zhutoubenben的专栏 964

【css】jquery.pngFix.js解决透明问题

/** * -------------------------------------------------------------------- * jQuery-Plugin "pngFix" * Version: 1.2, 09.03.2009 * by Andreas Eberhard, andreas.eberhard@gmail.com * ...

weixin_34007879的博客 391

【MATLAB】嵌入式PID控制参数整定与优化

本文提出了一种基于MATLAB仿真的嵌入式PID参数优化方法,解决了传统人工试凑法效率低、适应性差的问题。通过建立一阶滞后被控对象模型,对比分析了不同PID参数组合的性能表现,筛选出最优参数。仿真结果表明,优化后的PID参数能有效降低超调量(从传统方法的显著超调降至接近0%),缩短调节时间,提高稳态精度。最终将优化算法部署到STM32平台,实现了"仿真整定-参数优化-嵌入式落地"的完整开发流程。该方法显著提升了嵌入式系统的响应速度和控制精度,为工业控制应用提供了标准化解决方案。

unber的博客 45

Error: Cannot find module ‘png-js‘问题解决

突然发现执行脚本报如下错误: Error: Cannot find module 'png-js' 是因为docker容器缺少模块 'png-js',这里执行如下安装模块命令即可: sudo docker exec -it 容器昵称pnpm i png-js

mc76884948的博客 4526

STM32 HAL PWM (占空比) -电机软启动不到位解决

为了避免电机启动电压大造成设备损坏,或者供电不足导致重启,通常在对启动都需要一个PWM进行软启动,下面对PWM电机软启动详细介绍。

weixin_44597885的博客 866

302.QoS实现工具之MQC

QoS 技术可以对网络中报文进行分类处理,根据优先级提供不同的差分服务,如何实现这种差分服务呢?我们有一种强大的配置方法 - 模块化 QoS 命令行 MQC(Modular QoS Command-Line)。下面就来介绍一下 MQC。

迷逝 1391

PNG在WINDOWS下无法显示问题

有的PNG在MAC下可以显示,但拿到WINDOWS下就不能显示。就是因为这些文件是经过xcode编译优化过的,所以无法直接查看。 我看网上说是 "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush\ -revert-iphone-optimizations -q Local.png Local-stand...

weixin_30662539的博客 516

【ComfyUI】Wan2.2 动态服饰描述驱动换装图生视频

本文介绍了一个基于ComfyUI的Wan2.2动态服饰描述驱动换装工作流,能通过自然语言描述实现人物图像的自动换装并生成动态视频。该工作流结合多模态输入、语言模型驱动生成和视频合成技术,包含图像加载、文本解析(使用Qwen2.5大模型)、潜变量编码、视频帧采样与插值(RIFE VFI)等核心模块,最终通过VHS_VideoCombine输出流畅换装视频。整个流程无需手动干预,支持从"哥特风格"到"未来装甲"等多样化服饰风格的精确转换,通过文本节点控制50-100

Mr数据杨 2581

React 性能:memo / useMemo / useCallback

讲清 memo/useMemo/useCallback 的配合与边界,先测量再优化,避开常见过早优化。

JudithHuang的博客 324

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

V8 机制、手写核心函数与 TypeScript 类型体操

或固定初始化(如数组先定长、对象先给全字段)保持类型与形状稳定;这些都比"换框架"更基础。只能处理纯数据(丢函数、Date、RegExp、循环引用报错)。生产级深拷贝要处理:原始值短路、循环引用、V8(Chrome / Node 的 JS 引擎)不是"解释一行跑一行"那么简单,它用。图:V8 执行流程——解释执行 + 热点优化,优化失败会 Deopt 回退。JS 内存自动管理,但"自动"不等于"不会漏"。是"固定间隔最多执行一次"。手写 Promise 是"懂异步"的试金石。是"停下后才执行最后一次",

qq_38468358的博客 330

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Claude Code 从入门到实战(一):安装、登录与第一个Vue项目

Claude Code 系列实战第 1 篇:先认识 Claude Code 的工作方式与任务循环,完成 npm 安装、登录与授权,通过让 Claude 理解一个 Vue 项目完成第一次实战任务,并辨析默认、自动接受编辑、Plan 规划等权限模式的差异与选择策略。

weixin_45284808的博客 204

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

DSH (DeepSeek Harness) Windows 升级安装指南20261107

注意:如果在普通窗口执行 nvm 提示找不到命令,或执行 nvm use 提示 Access is denied,请务必关闭当前窗口,重新打开一个管理员CMD 执行上述完整路径命令。找到 .credentials.yaml,将其重命名为 .credentials.yaml.bak(备份并使其失效)。Node.js Storage Location:可改到非系统盘(如 D:\dev\nvm,避免路径含空格或中文)。打开文件资源管理器,进入 C:\Users<你的用户名>.dsh\。

fengye207161的博客 183

SpringBoot「衣依」服装销售平台:144个Java文件180个接口,从挑衣服到收货评价整条链路都在

# SpringBoot「衣依」服装销售平台:144个Java文件180个接口,从挑衣服到收货评价整条链路都在 > 这是一套基于 Spring Boot 的服装销售平台源码,配套 `db.sql` 建表脚本,业务覆盖商品展示、购物车、订单流转、收货地址、订单评价、商品评论、在线客服、轮播图和资讯。形态是**前后台双端**:前台是顾客逛的商城,后台是管理员管的控制台。本文带你看清里面有什么、怎么跑

面朝大海 225

微信小程序-wxs

在微信开发者工具中右键创建.wxs后缀的文件。每个.wxs文件也是一个独立模块,同样使用导出内容。示例(文件return d;FOO: foo,bar: bar(外联定义参考官方文档)

dreams_dream的博客 334
上一篇: IE6 Bug之自战回顾
下一篇: Uploadify + Struts2 应用之分析与详解
飞跃颠峰
博客等级 码龄16年 659粉丝 10原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值