前端那些事儿

1.IE10中无端不显示png图片

一个纠结了近一个月的问题:公司网站,IE10中突然不显示png图片,图片区域空白。而在其他浏览器以及之前各版本的IE中均正常。查看源码加载完全正确,让人完全摸不着头脑。

尝试完各种方法,依然误解。今天使用IE的那个破烂不堪的调试工具(按F12调出),突然有了发现,居然在这里显示的图片路径被篡改了,虽然查看源码中的路径正确。于是断定是js在捣鬼。

一翻寻找之后发现了这么一段JS:

/*****png透明*****/
if($.browser.msie && $.browser.version.substr(0, 1)<=7){
// some code
}  

坑啊,这段代码没有考虑到IE版本到10的情况,于是在版本为10时也会执行,其中有将png图片路径修改的代码(定位到另一个图片),用于处理png在IE中的透明问题。这样IE10中的所有png图片都透明了。坑死人啊。

将代码改成如下,解决了问题(但这种处理方法只能用于jquery<1.9的情况):

/*****png透明*****/
if($.browser.msie && parseFloat($.browser.version)<9){
// some code
}  

这里主要就是要判断IE的版本,在不需要png透明处理的IE版本中不执行该代码。
这里可以查看判断IE版本的多个方法。

IE很坑爹,但这次是写js大意了。


Go Top
comments powered by Disqus