ie6下如果用css图片平铺,会出现cpu短暂100%的情况,主要原因在于,ie6会重复下载图片。
用一句代码即可搞定:
document.execCommand(
"
BackgroundImageCache
"
,
false
,
true
);
当然为了其它浏览器上能正常通过,需要做下判断后调用,才更安全:
if
(Browser.isIE6){
try {
document.execCommand( " BackgroundImageCache " , false , true );
}
catch (e1){}
}
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){}
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;
}
for ( var o in obj2){
obj1[o] = obj2[o];
}
return obj1;
}