From ea214c3a1414da7ec58523f08e163bc32c4f7824 Mon Sep 17 00:00:00 2001 From: Jens Frank Date: Wed, 6 Oct 2004 20:12:14 +0000 Subject: [PATCH] BUG#634, Patch#2: Patch by Tom Gilder. Avoids flickering logo in MSIE 5.5 and newer --- skins/common/IEFixes.js | 42 +++++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/skins/common/IEFixes.js b/skins/common/IEFixes.js index 4fbc9a8216..4344f9c8c8 100644 --- a/skins/common/IEFixes.js +++ b/skins/common/IEFixes.js @@ -1,24 +1,38 @@ -// IE fix javascript -var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, ''); -if (rslt != null ) var version = Number(rslt[1]); -else var version = 0; +// IE fixes javascript + +var isMSIE55 = (window.showModalDialog && window.clipboardData && window.createPopup); + +if (document.attachEvent) + document.attachEvent('onreadystatechange', hookit); -window.attachEvent("onload", hookit); function hookit() { - fixalpha(); - relativeforfloats(); + if (document.getElementById && document.getElementById('bodyContent')) { + fixalpha(); + relativeforfloats(); + } } // png alpha transparency fixes -function fixalpha(){ +function fixalpha() { // bg - if(version >= 5.5) { - var logoa = document.getElementById('p-logo').firstChild; + if (isMSIE55) { + var plogo = document.getElementById('p-logo'); + var logoa = plogo.getElementsByTagName('a')[0]; var bg = logoa.currentStyle.backgroundImage; - if (bg.match(/\.png/i) != null){ - var mypng = bg.substring(5,bg.length-2); - logoa.style.backgroundImage = "none"; - logoa.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mypng+"', sizingMethod='crop')"; + 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 = '100%'; + logospan.style.cursor = 'hand'; + // Center image with hack for IE5.5 + logospan.style.left = '50%'; + logospan.style.setExpression('marginLeft', '"-" + (this.offsetWidth / 2) + "px"'); } } } -- 2.20.1