IE6下CSS图片缓存问题解决方法

  用一句代码即可搞定:

  

复制代码 代码如下:

  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;

  }