Wiktenauer logo.png

MediaWiki:Common.js/IEFixes.js

From Wiktenauer
Jump to navigation Jump to search

Note: After saving, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Clear the cache in Tools → Preferences
/* Scripts specific to Internet Explorer */

/**
 * Add IE specific CSS
 */
var ieCSS;

/* In print IE (7?) does not like line-height */
ieCSS += '@media print { sup, sub, p { line-height: normal; } } ';

/* IE overflow bug */
ieCSS += 'div.overflowbugx { overflow-x: scroll !important; overflow-y: hidden !important; } ' +
         'div.overflowbugy { overflow-y: scroll !important; overflow-x: hidden !important; } ';

/* IE zoomfix. Use to fix right floating div/table inside tables. */
ieCSS += '.iezoomfix div, .iezoomfix table { zoom: 1; } ';

mw.util.addCSS( ieCSS );

/**
 * Description: Fixes IE horizontal scrollbar bug
 * Maintainers: [[User:Tom-]]?
 */
var oldWidth;
var docEl = document.documentElement;

var fixIEScroll = function () {
    if ( !oldWidth || docEl.clientWidth > oldWidth ) {
        doFixIEScroll();
    } else {
        setTimeout( doFixIEScroll, 1 );
    }
    oldWidth = docEl.clientWidth;
}

var doFixIEScroll = function () {
    docEl.style.overflowX = ( docEl.scrollWidth - docEl.clientWidth < 4 ) ? 'hidden' : '';
}

document.attachEvent( 'onreadystatechange', fixIEScroll );
document.attachEvent( 'onresize', fixIEScroll );

/**
 * Helper script for .hlist class in Common.css
 * Last updated: September 23, 2012
 * @maintainer: [[User:Edokter]]
 * @revision: 2.0
 */
/* Fix wrapping issue in IE 8 and up for hlist in table; put a soft-hyphen in front of list items. */
if ( $.client.profile().versionBase > '7' ) {
    mw.util.addCSS( 'table.hlist li:before { content: "\\ad"; }' );
}
/* Add pseudo-selector class to last-child list items in IE 8 */
if ( $.client.profile().versionBase == '8' ) {
    $( '.hlist' ).find( 'dd:last-child, dt:last-child, li:last-child' )
        .addClass( 'hlist-last-child' );
}
/* Generate interpuncts and parentheses for IE < 8 */
if ( $.client.profile().versionBase < '8' ) {
    var hlists = $( '.hlist' );
    hlists.find( 'dt:not(:last-child)' )
        .append( ': ' );
    hlists.find( 'dd:not(:last-child)' )
        .append( '<b>·</b> ' );
    hlists.find( 'li:not(:last-child)' )
        .append( '<b>·</b> ' );
    hlists.find( 'dl dl, dl ol, dl ul, ol dl, ol ol, ol ul, ul dl, ul ol, ul ul' )
        .prepend( '( ' ).append( ') ' );
}