1. JavaScript / Говнокод #8783

    +150

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    function fixPNG(element)
    {
      if(/MSIE (5\.5|6).+Win/.test(navigator.userAgent)){
        var src;
        src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i)
    	
        if(src){
          src = src[1];
          element.runtimeStyle.backgroundImage = "none";
        }
    	
        if(src){
          element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src = '" + 
    	    src + "',sizingMethod = 'scale')";
    	}
      }
    }

    Запостил: shlyapa, 09 Декабря 2011

    Комментарии (8) RSS

    • Призрак ie, изыди!
      Ответить
    • ух ты, прозрачность в стиле msie5\6
      я когда-то так glow эффект делал
      Ответить
    • почти нормальный фикс, говна здесь нет. с IE6 только так и боролся, если страница с прозрачными png динамически генерировалась.

      делал так
      function fix_png(element,sizing_method){
      if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent)){
      var src;
      if (element.tagName=='IMG'){
      var a_width=element.width;
      var a_height=element.height;
      if (/\.png$/.test(element.src)){
      src=element.src;
      element.src="/design/images/blank.gif";
      element.width=a_width;
      element.height=a_height;
      }
      }
      else{
      src=element.currentStyle.backgroundImage .match(/url\("(.+\.png)"\)/i);
      if (src){
      src=src[1];
      element.runtimeStyle.backgroundImage="no ne";
      }
      }
      if(src)element.runtimeStyle.filter="prog id:DXImageTransform.Microsoft.AlphaImage Loader(src='"+src+"',sizingMethod='"+siz ing_method+"')";
      }
      }

      плюс вот такая шляпень в css для ie6
      .filtered_image{
      filter:expression(fix_png(this,'image')) !important;
      }
      .filtered_scale{
      filter:expression(fix_png(this,'scale')) !important;
      }

      да. и еще однопиксельный прозрачный gif нужон. потом просто класс прописывал у нужных элементов
      Ответить
      • Шестой осёл же, вроде, не вдупляет !important
        Ответить
    • Ну и что тут такого? Потребовал заказчик добавить поддержку IE6, пришлось такое докрутить.
      Ответить
      • Да с заказчиками которые требуют поддержку IE6 надо соглашатся,разговаривать тихо а то мало ли может он из буйных, а после звонить в больничку и сказать, что их сбежавший пацент нашелся. А то ищут не бойсь.
        Ответить
        • Надо затребовать полную поддержку Netscape 4.0
          Ответить

    Добавить комментарий