Physikerwelt has uploaded a new change for review. https://gerrit.wikimedia.org/r/113763
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 --- M modules/MathJax/unpacked/extensions/mml2jax.js 1 file changed, 19 insertions(+), 5 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Math refs/changes/63/113763/1 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/113763 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I0e2071aebee4e524960b01c4a5a10e49b5520846 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Math Gerrit-Branch: dev Gerrit-Owner: Physikerwelt <w...@physikerwelt.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits