From 183851b06bd6c52f3cae5375f433da720d410447 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Wed, 11 Oct 2006 18:12:39 +0000 Subject: MediaWiki 1.7.1 wiederhergestellt --- skins/common/IEFixes.js | 127 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 skins/common/IEFixes.js (limited to 'skins/common/IEFixes.js') diff --git a/skins/common/IEFixes.js b/skins/common/IEFixes.js new file mode 100644 index 00000000..9c25adf0 --- /dev/null +++ b/skins/common/IEFixes.js @@ -0,0 +1,127 @@ +// IE fixes javascript + +var isMSIE55 = (window.showModalDialog && window.clipboardData && window.createPopup); +var doneIETransform; +var doneIEAlphaFix; + +if (document.attachEvent) + document.attachEvent('onreadystatechange', hookit); + +function hookit() { + if (!doneIETransform && document.getElementById && document.getElementById('bodyContent')) { + doneIETransform = true; + relativeforfloats(); + fixalpha(); + } +} + +// png alpha transparency fixes +function fixalpha() { + // bg + if (isMSIE55 && !doneIEAlphaFix) + { + 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); + + doneIEAlphaFix = true; + + 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"'); + + var linkFix = logoa.appendChild(logoa.cloneNode()); + linkFix.style.position = 'absolute'; + linkFix.style.height = '100%'; + linkFix.style.width = '100%'; + } + } +} + +// fix ie6 disappering float bug +function relativeforfloats() { + var bc = document.getElementById('bodyContent'); + if (bc) { + var tables = bc.getElementsByTagName('table'); + var divs = bc.getElementsByTagName('div'); + } + setrelative(tables); + setrelative(divs); +} +function setrelative (nodes) { + var i = 0; + while (i < nodes.length) { + if(((nodes[i].style.float && nodes[i].style.float != ('none') || + (nodes[i].align && nodes[i].align != ('none'))) && + (!nodes[i].style.position || nodes[i].style.position != 'relative'))) + { + nodes[i].style.position = 'relative'; + } + i++; + } +} + + +// Expand links for printing + +String.prototype.hasClass = function(classWanted) +{ + var classArr = this.split(/\s/); + for (var i=0; i