Physikerwelt has submitted this change and it was merged.

Change subject: Push math nodes onto mathArray individually to avoid problem in 
IE < 9 where push.apply doesn't work on a nodeList. Also, avoid duplicate 
elements in the array by checking for namespace prefixes. This needs to work 
for both HTML and XHTML. Resolves issue 
......................................................................


Push math nodes onto mathArray individually to avoid problem in IE < 9 where 
push.apply doesn't work on a nodeList. Also, avoid duplicate elements in the 
array by checking for namespace prefixes. This needs to work for both HTML and 
XHTML. Resolves issue #672.

Signed-off-by: physikerwelt <w...@physikerwelt.de>

Change-Id: I0e2071aebee4e524960b01c4a5a10e49b5520846
(cherry picked from commit d463f88c18b16d06d0af30619d6baf2ded489bc1)
---
M modules/MathJax/unpacked/extensions/mml2jax.js
1 file changed, 19 insertions(+), 5 deletions(-)

Approvals:
  Frédéric Wang: Looks good to me, but someone else must approve
  Physikerwelt: Looks good to me, approved



diff --git a/modules/MathJax/unpacked/extensions/mml2jax.js 
b/modules/MathJax/unpacked/extensions/mml2jax.js
index d50dcd3..da57030 100644
--- a/modules/MathJax/unpacked/extensions/mml2jax.js
+++ b/modules/MathJax/unpacked/extensions/mml2jax.js
@@ -53,12 +53,11 @@
     //
     //  Handle all math tags with no namespaces
     //
-    mathArray.push.apply(mathArray,element.getElementsByTagName("math"));
+    this.PushMathElements(mathArray,element,"math");
     //
     //  Handle math with namespaces in XHTML
     //
-    if (element.getElementsByTagNameNS)
-      
{mathArray.push.apply(mathArray,element.getElementsByTagNameNS(this.MMLnamespace,"math"))}
+    this.PushMathElements(mathArray,element,"math",this.MMLnamespace);
     //
     //  Handle math with namespaces in HTML
     //
@@ -71,7 +70,7 @@
         for (i = 0, m = document.namespaces.length; i < m; i++) {
           var ns = document.namespaces[i];
           if (ns.urn === this.MMLnamespace)
-            
{mathArray.push.apply(mathArray,element.getElementsByTagName(ns.name+":math"))}
+            {this.PushMathElements(mathArray,element,ns.name+":math")}
         }
       } catch (err) {}
     } else {
@@ -83,13 +82,28 @@
         for (i = 0, m = html.attributes.length; i < m; i++) {
           var attr = html.attributes[i];
           if (attr.nodeName.substr(0,6) === "xmlns:" && attr.nodeValue === 
this.MMLnamespace)
-            
{mathArray.push.apply(mathArray,element.getElementsByTagName(attr.nodeName.substr(6)+":math"))}
+            
{this.PushMathElements(mathArray,element,attr.nodeName.substr(6)+":math")}
         }
       }
     }
     this.ProcessMathArray(mathArray);
   },
   
+  PushMathElements: function (array,element,name,namespace) {
+    var math, preview = MathJax.Hub.config.preRemoveClass;
+    if (namespace) {
+      if (!element.getElementsByTagNameNS) return;
+      math = element.getElementsByTagNameNS(namespace,name);
+    } else {
+      math = element.getElementsByTagName(name);
+    }
+    for (var i = 0, m = math.length; i < m; i++) {
+      var parent = math[i].parentNode;
+      if (parent && parent.className !== preview && !math[i].prefix === 
!namespace)
+        {array.push(math[i])}
+    }
+  },
+  
   ProcessMathArray: function (math) {
     var i, m = math.length;
     if (m) {

-- 
To view, visit https://gerrit.wikimedia.org/r/113764
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I0e2071aebee4e524960b01c4a5a10e49b5520846
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Math
Gerrit-Branch: master
Gerrit-Owner: Physikerwelt <w...@physikerwelt.de>
Gerrit-Reviewer: Chad <ch...@wikimedia.org>
Gerrit-Reviewer: Frédéric Wang <fred.w...@free.fr>
Gerrit-Reviewer: GWicke <gwi...@wikimedia.org>
Gerrit-Reviewer: Physikerwelt <w...@physikerwelt.de>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to