Wikipedia‐ノート:経路図テンプレート/PngFix.js

ページのコンテンツが他言語でサポートされていません。

/**

 * Correctly handle PNG transparency in Internet Explorer 6.
 * http://homepage.ntlworld.com/bobosola. Updated 18-Jan-2006.
 *  
 * Adapted for Wikipedia by Remember_the_dot and Edokter.
 *  
 * http://homepage.ntlworld.com/bobosola/pnginfo.htm states "This page contains more information for
 * the curious or those who wish to amend the script for special needs", which I take as permission to
 * modify or adapt this script freely. I release my changes into the public domain.
 */  

function PngFix() {

   try
   {
       if (!document.body.filters)
       {
           window.PngFixDisabled = true
       }
   }
   catch (e)
   {
       window.PngFixDisabled = true
   }
   if (!window.PngFixDisabled)
   {
       var documentImages = document.images
       var documentCreateElement = document.createElement
       var funcEncodeURI = encodeURI
       
       for (var i = 0; i < documentImages.length;)
       {
           var img = documentImages[i]
           var imgSrc = img.src
           
           if (imgSrc.substr(imgSrc.length - 3).toLowerCase() == "png" && !img.onclick)
           {
               if (img.useMap)
               {
                   img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + encodeURI(imgSrc) + "')"
                   img.src = "http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif"
                   i++
               }
               else
               {
                   var outerSpan = documentCreateElement("span")
                   var innerSpan = documentCreateElement("span")
                   var outerSpanStyle = outerSpan.style
                   var innerSpanStyle = innerSpan.style
                   var imgCurrentStyle = img.currentStyle
                   
                   outerSpan.id = img.id
                   outerSpan.className = img.className
                   outerSpanStyle.backgroundImage = imgCurrentStyle.backgroundImage
                   outerSpanStyle.borderWidth = imgCurrentStyle.borderWidth
                   outerSpanStyle.borderStyle = imgCurrentStyle.borderStyle
                   outerSpanStyle.borderColor = imgCurrentStyle.borderColor
                   outerSpanStyle.display = "inline-block"
                   outerSpanStyle.fontSize = "0"
                   outerSpanStyle.verticalAlign = "middle"
                   if (img.parentElement.href) outerSpanStyle.cursor = "hand"
                   
                   innerSpanStyle.width = "1px"
                   innerSpanStyle.height = "1px"
                   innerSpanStyle.display = "inline-block"
                   innerSpanStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + funcEncodeURI(imgSrc) + "')"
                   
                   outerSpan.appendChild(innerSpan)
                   img.parentNode.replaceChild(outerSpan, img)
               }
           }
           else
           {
               i++
           }
       }
   }

}

if (navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.substr(22, 1) == "6") {

   window.attachEvent("onload", PngFix)

}