home *** CD-ROM | disk | FTP | other *** search
/ developer.apple.com / developer.apple.com.tar / developer.apple.com / global / scripts / lib / iepngfix_scale.htc next >
Text File  |  2009-11-09  |  2KB  |  78 lines

  1. <public:component>
  2. <public:attach event="onpropertychange" onevent="doFix()" />
  3. <script type="text/javascript">
  4. // IE5.5+ PNG Alpha Fix v1.0RC3
  5. // (c) 2004-2005 Angus Turnbull http://www.twinhelix.com
  6. // This is licensed under the CC-GNU LGPL, version 2.1 or later.
  7. // For details, see: http://creativecommons.org/licenses/LGPL/2.1/
  8. // This must be a path to a blank image. That's all the configuration you need.
  9. var blankImg = '/global/elements/blank.gif';
  10. var f = 'DXImageTransform.Microsoft.AlphaImageLoader';
  11. function filt(s,m)
  12.     {
  13.     if (filters[f])
  14.         {
  15.           filters[f].enabled = s ? true : false;
  16.           if (s) with (filters[f])
  17.             {
  18.             src = s;
  19.             sizingMethod = m;
  20.             }
  21.          }
  22.      else if (s)
  23.         {
  24.         style.filter = 'progid:'+f+'(src="'+s+'",sizingMethod="'+m+'")';
  25.         }
  26.     }
  27. function doFix()
  28.     {
  29.     // Assume IE7 is OK
  30.     if (!/MSIE (5\.5|6\.)/.test(navigator.userAgent) || (event && !/(background|src)/.test(event.propertyName)))
  31.         {
  32.         return;
  33.         }
  34.     var bgImg = currentStyle.backgroundImage || style.backgroundImage;
  35.     if (tagName == 'IMG' || tagName == 'INPUT')
  36.         {
  37.         if ((/\.png$/i).test(src))
  38.             {
  39.             // this tests to see if the image has already been replaced once before
  40.             if (src.indexOf('?repurl=') == -1)
  41.                 {
  42.                 if (currentStyle.width == 'auto' && currentStyle.height == 'auto')
  43.                     {
  44.                     style.width = offsetWidth+'px';
  45.                     }
  46.                 filt(src,'scale');
  47.                 src = blankImg+'?repurl='+src;
  48.                 }
  49.             }
  50.         else if (src.indexOf(blankImg) < 0)
  51.             {
  52.             filt();
  53.             }
  54.         }
  55.     else if (bgImg && bgImg != 'none')
  56.         {
  57.           if (bgImg.match(/^url[("']+(.*\.png)[)"']+$/i))
  58.               {
  59.            var s = RegExp.$1;
  60.            if (currentStyle.width == 'auto' && currentStyle.height == 'auto')
  61.                 {
  62.                 style.width = offsetWidth+'px';
  63.                 }
  64.            style.backgroundImage = 'none';
  65.            filt(s,'scale');
  66.            // IE link fix
  67.            for (var n=0;n<childNodes.length;n++)
  68.                 {
  69.                 if (childNodes[n].style) { childNodes[n].style.position = 'relative'};
  70.                 }
  71.               }
  72.         else filt();
  73.         }
  74.     }
  75. doFix();
  76. </script>
  77. </public:component>
  78.