总有一些美好,期待着我们去发现
RSS 图标 Email 图标 首页图标
  • 解决IE6下css背景重复读取的问题

    发表于 2009年08月13日 黄良懿 没有评论

    最近碰到个问题,放狗查了得知IE6用css指定背景的时候有一个问题,默认不缓存背景图片,需要加一段Javascript来让它别闹腾:

    document.execCommand('BackgroundImageCache', false, true);
    

    不过样式表的问题需要放到js中解决还要让整个网站都装入这个js有时候是蛮讨厌的,最好还是能放在css中,毕竟这祸害根源还是css问题,而且一般都会有个全局css被全站引用,这样加起来方便。 So,我是这样做的:

    body {
        zoom: expression(function(ele){
    		if ((i = navigator.userAgent.indexOf("MSIE")) >= 0) {
    			if (parseInt(navigator.userAgent.substr(i + 4)) == 6) {
    				document.execCommand('BackgroundImageCache', false, true);
    				ele.style.zoom = '1';
    			}
    		}
        }(this));
    }
    

    这个方法的好处是只会执行一次,放在其它DOM对象上很可能会被执行n多次,太过影响效率。 附上JavaScript解决方案的全部代码:

    <!--[if IE 6]>
    <script type="text/javascript">
    try { document.execCommand('BackgroundImageCache', false, true); } catch(e) {}
    </script>
    <![endif]-->
    

    相关日志:

    • 没有相关的日志