IE6下CSS图片缓存问题

ie6下如果用css图片平铺,会出现cpu短暂100%的情况,主要原因在于,ie6会重复下载图片。

用一句代码即可搞定:

 

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

当然为了其它浏览器上能正常通过,需要做下判断后调用,才更安全:

 

 

if(Browser.isIE6){
try{
document.execCommand(
"BackgroundImageCache", false, true);
}
catch(e1){}
}

平台检测代码可以这样写,摘自Ext源码:

 

var Browser = {};
try{
(
function(){
var idSeed = 0,
ua
= navigator.userAgent.toLowerCase(),
check
= function(r){
return r.test(ua);
},
DOC
= document,
isStrict
= DOC.compatMode == "CSS1Compat",
isOpera
= check(/opera/),
isChrome
= check(/\bchrome\b/),
isWebKit
= check(/webkit/),
isSafari
= !isChrome && check(/safari/),
isSafari2
= isSafari && check(/applewebkit\/4/), // unique to Safari 2
isSafari3
= isSafari && check(/version\/3/),
isSafari4 = isSafari && check(/version\/4/),
isIE = !isOpera && check(/msie/),
isIE7
= isIE && check(/msie 7/),
isIE8
= isIE && check(/msie 8/),
isIE6
= isIE && !isIE7 && !isIE8,
isGecko
= !isWebKit && check(/gecko/),
isGecko2
= isGecko && check(/rv:1\.8/),
isGecko3
= isGecko && check(/rv:1\.9/),
isBorderBox
= isIE && !isStrict,
isWindows
= check(/windows|win32/),
isMac
= check(/macintosh|mac os x/),
isAir
= check(/adobeair/),
isLinux
= check(/linux/),
isIpad
= check(/ipad/),
isSecure
= /^https/i.test(window.location.protocol);
extend(Browser,{
isOpera:isOpera,
isIE:isIE,
isIE6:isIE6,
isFirefox:isGecko,
isSafari:isSafari,
isChrome:isChrome,
isIpad:isIpad
});
})();
}
catch(e){}

 

 

//上面extend方法也很easy

 

 

function extend(obj1,obj2){
for(var o in obj2){
obj1[o]
= obj2[o];
}
return obj1;
}
posted @ 2010-12-04 14:08  周尚武  阅读(499)  评论(0编辑  收藏  举报