PNG alpha fix: added error checking
authorTom Gilder <tomgilder@users.mediawiki.org>
Sun, 16 Jan 2005 00:23:13 +0000 (00:23 +0000)
committerTom Gilder <tomgilder@users.mediawiki.org>
Sun, 16 Jan 2005 00:23:13 +0000 (00:23 +0000)
skins/common/IEFixes.js

index ec10f1b..df7439a 100644 (file)
@@ -20,35 +20,39 @@ function fixalpha() {
     // bg
     if (!doneIEAlphaFix)
     {
-      doneIEAlphaFix = true;
-      var plogo = document.getElementById('p-logo');
-      var logoa = plogo.getElementsByTagName('a')[0];
-      var bg = logoa.currentStyle.backgroundImage;
-      var imageUrl = bg.substring(5, bg.length-2);
-
-      if (imageUrl.substr(imageUrl.length-4).toLowerCase() == '.png') {
-          var logospan = logoa.appendChild(document.createElement('span'));
-         
-          logoa.style.backgroundImage = 'none';
-          logospan.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' + imageUrl + ')';
-          logospan.style.height = '100%';
-          logospan.style.position = 'absolute';
-          logospan.style.width = logoa.currentStyle.width;
-          logospan.style.cursor = 'hand';
-          // Center image with hack for IE5.5
-          if (document.documentElement.dir == "rtl") 
-          {
-            logospan.style.right = '50%';
-            logospan.style.setExpression('marginRight', '"-" + (this.offsetWidth / 2) + "px"');
-          }
-          else
-          {
-            logospan.style.left = '50%';
-            logospan.style.setExpression('marginLeft', '"-" + (this.offsetWidth / 2) + "px"');
-          }
-          logospan.style.top = '50%';
-          logospan.style.setExpression('marginTop', '"-" + (this.offsetHeight / 2) + "px"');
-      }
+        doneIEAlphaFix = true;
+        var plogo = document.getElementById('p-logo');
+        if (!plogo) return;
+
+        var logoa = plogo.getElementsByTagName('a')[0];
+        if (!logoa) return;
+
+        var bg = logoa.currentStyle.backgroundImage;
+        var imageUrl = bg.substring(5, bg.length-2);
+
+        if (imageUrl.substr(imageUrl.length-4).toLowerCase() == '.png') {
+            var logospan = logoa.appendChild(document.createElement('span'));
+           
+            logoa.style.backgroundImage = 'none';
+            logospan.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' + imageUrl + ')';
+            logospan.style.height = '100%';
+            logospan.style.position = 'absolute';
+            logospan.style.width = logoa.currentStyle.width;
+            logospan.style.cursor = 'hand';
+            // Center image with hack for IE5.5
+            if (document.documentElement.dir == "rtl") 
+            {
+              logospan.style.right = '50%';
+              logospan.style.setExpression('marginRight', '"-" + (this.offsetWidth / 2) + "px"');
+            }
+            else
+            {
+              logospan.style.left = '50%';
+              logospan.style.setExpression('marginLeft', '"-" + (this.offsetWidth / 2) + "px"');
+            }
+            logospan.style.top = '50%';
+            logospan.style.setExpression('marginTop', '"-" + (this.offsetHeight / 2) + "px"');
+        }
     }
 }