From 8e66e40780f1cbf3afce3bcbd1abdf7e34c0ada7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Wang?= Date: Sat, 11 Oct 2014 17:26:00 +0200 Subject: [PATCH] Improvements to the PNG fallback style. - create a new tag to avoid copying unwanted style from the SVG fallback. - keep the legacy tex class for consistency with the PNG mode. Bug: 71912 Change-Id: Ibe4683d2898b49fda190e2f1535cab1b952250b0 --- modules/ext.math.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/modules/ext.math.js b/modules/ext.math.js index 48c84ed..2f6e5d1 100644 --- a/modules/ext.math.js +++ b/modules/ext.math.js @@ -1,7 +1,7 @@ ( function ( $ ) { 'use strict'; - // These constants are taken from Math.php - var MW_MATH_PNG = 0, MW_MATH_MATHML = 5; + // The MW_MATH_PNG and MW_MATH_MATHML constants are taken from Math.php + var MW_MATH_PNG = 0, MW_MATH_MATHML = 5, img; // If MathPlayer is installed we show the MathML rendering. if (navigator.userAgent.indexOf('MathPlayer') > -1) { @@ -14,9 +14,15 @@ // PNG fallback. See https://github.com/Modernizr/Modernizr/blob/master/feature-detects/svg/asimg.js if (!document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#Image', '1.1')) { $( 'img.mwe-math-fallback-svg-inline, img.mwe-math-fallback-svg-display' ).each(function() { - this.setAttribute('src', this.src.replace('mode=' + MW_MATH_MATHML, 'mode=' + MW_MATH_PNG)); + // Create a new PNG image to use as the fallback. + img = document.createElement('img'); + img.setAttribute( 'src', this.src.replace('mode=' + MW_MATH_MATHML, 'mode=' + MW_MATH_PNG) ); + img.setAttribute( 'class', 'tex mwe-math-fallback-png-' + ($( this ).hasClass('mwe-math-fallback-svg-inline') ? 'inline' : 'display') ); + img.setAttribute( 'aria-hidden', 'true' ); + this.parentNode.insertBefore( img, this ); + + // Hide the SVG fallback. + $( this ).css( 'display', 'none' ); }); - $( 'img.mwe-math-fallback-svg-inline' ).removeClass( 'mwe-math-fallback-svg-inline' ).addClass( 'mwe-math-fallback-png-inline' ); - $( 'img.mwe-math-fallback-svg-display' ).removeClass( 'mwe-math-fallback-svg-display' ).addClass( 'mwe-math-fallback-png-display' ); } }( jQuery ) );