IE6下CSS背景图片闪烁的Bug(ie6下的背景图片缓存问题)
IE6下的背景图片每次使用都会重新发送请求(非本地),连一个hover效果时候同样的背景图片仅仅位置不同而已,ie6都会再次发送请求,这个令人崩溃的事情需要解决掉:
对于ie来说,filter:expression 很强大,能够实现的功能超级多,但是更对于视效率如生命的程序员来说,它的效率不敢令人恭维,所以有人会用css方法实现ie6下背景图片缓存,但是这种人也就是崇拜微软的强大而已:
代码如下:
html {filter:expression(document.execCommand("BackgroundImageCache", false, true));} 当然缺点:可能会使整个页面的加载速度变慢
大多数人都会选择js方法实现:
代码如下:
<script type='text/javascript'>
document.execCommand("BackgroundImageCache", false, true);
</script>
缺点:如果在firefox等浏览器下执行会出错。
所以需要判断是否为IE浏览器,使用jQuery提供的判断方法如下:
代码如下:
<script type='text/javascript'>
if ($.browser.msie) {
document.execCommand("BackgroundImageCache", false, true);
}
</script>
更简单的就是使用IE的条件注释:
代码如下:
<!--[if lt IE 7]>
<script>document.execCommand("BackgroundImageCache",false,true);</script>
<![endif]-->