diff --git a/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js b/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js index f19a15e5d..1a1914e17 100644 --- a/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js +++ b/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js @@ -45,7 +45,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // var base, bbox; if (stretch) { - base = node.getElementsByTagName("mjx-base")[0]; + base = CHTML.getNode(node,"mjx-base"); } else { this.CHTMLaddChild(node,0,{type:"mjx-base", noBBox:true, forceChild:true}); base = node.firstChild; @@ -137,10 +137,10 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // CHTMLgetScripts: function (BOX,BBOX,stretch,node) { if (stretch) { - BOX.sub = node.getElementsByTagName("mjx-sub")[0]; - BOX.sup = node.getElementsByTagName("mjx-sup")[0]; - BOX.presub = node.getElementsByTagName("mjx-presub")[0]; - BOX.presup = node.getElementsByTagName("mjx-presup")[0]; + BOX.sub = CHTML.getNode(node,"mjx-sub"); + BOX.sup = CHTML.getNode(node,"mjx-sup"); + BOX.presub = CHTML.getNode(node,"mjx-presub"); + BOX.presup = CHTML.getNode(node,"mjx-presup"); BBOX.sub = this.CHTMLbbox.sub; BBOX.sup = this.CHTMLbbox.sup; BBOX.presub = this.CHTMLbbox.presub; diff --git a/unpacked/jax/output/CommonHTML/autoload/multiline.js b/unpacked/jax/output/CommonHTML/autoload/multiline.js index 3b30c07f4..fcccc549a 100644 --- a/unpacked/jax/output/CommonHTML/autoload/multiline.js +++ b/unpacked/jax/output/CommonHTML/autoload/multiline.js @@ -505,9 +505,9 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // if (end.length === 0) { var NODE = this.CHTMLnodeElement(), - stack = NODE.getElementsByTagName("mjx-stack")[0], - sup = NODE.getElementsByTagName("mjx-sup")[0], - sub = NODE.getElementsByTagName("mjx-sub")[0]; + stack = CHTML.getNode(NODE,"mjx-stack"), + sup = CHTML.getNode(NODE,"mjx-sup"), + sub = CHTML.getNode(NODE,"mjx-sub"); if (stack) node.appendChild(stack); else if (sup) node.appendChild(sup); else if (sub) node.appendChild(sub); @@ -569,9 +569,9 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // if (start.length < 1) { NODE = this.CHTMLnodeElement(); - var prestack = NODE.getElementsByTagName("mjx-prestack")[0], - presup = NODE.getElementsByTagName("mjx-presup")[0], - presub = NODE.getElementsByTagName("mjx-presub")[0]; + var prestack = CHTML.getNode(NODE,"mjx-prestack"), + presup = CHTML.getNode(NODE,"mjx-presup"), + presub = CHTML.getNode(NODE,"mjx-presub"); if (prestack) node.appendChild(prestack); else if (presup) node.appendChild(presup); else if (presub) node.appendChild(presub); @@ -598,9 +598,9 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // if (end.length === 0) { NODE = this.CHTMLnodeElement(); - var stack = NODE.getElementsByTagName("mjx-stack")[0], - sup = NODE.getElementsByTagName("mjx-sup")[0], - sub = NODE.getElementsByTagName("mjx-sub")[0]; + var stack = CHTML.getNode(NODE,"mjx-stack"), + sup = CHTML.getNode(NODE,"mjx-sup"), + sub = CHTML.getNode(NODE,"mjx-sub"); if (stack) node.appendChild(stack); else if (sup) node.appendChild(sup); else if (sub) node.appendChild(sub); diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 54863d260..b51900f06 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -335,6 +335,22 @@ ucMatch: HTML.ucMatch, setScript: HTML.setScript, + // + // This replaces node.getElementsByTagName(type)[0] + // and should be replaced by that if we go back to using + // custom tags + // + getNode: (document.getElementsByClassName ? + function (node,type) {return node.getElementsByClassName(type)[0]} : + function (node,type) { + var nodes = node.getElementsByTagName("span"); + var name = RegExp("\\b"+type+"\\b"); + for (var i = 0, m = nodes.length; i < m; i++) { + if (name.test(nodes[i].className)) return nodes[i]; + } + } + ), + /********************************************/ @@ -361,7 +377,7 @@ // Remove any existing output // prev = script.previousSibling; - if (prev && prev.className.substr(0,9) === "mjx-chtml") + if (prev && prev.className && String(prev.className).substr(0,9) === "mjx-chtml") prev.parentNode.removeChild(prev); // // Add the node for the math and mark it as being processed @@ -1328,7 +1344,7 @@ if (child) { var type = options.childNodes; if (type) { - if (type instanceof Array) type = type[i]; + if (type instanceof Array) type = type[i]||"span"; node = CHTML.addElement(node,type); } cnode = child.toCommonHTML(node,options.childOptions); @@ -2035,9 +2051,9 @@ // var base, under, over, nodes = []; if (stretch) { - base = node.getElementsByTagName("mjx-op")[0]; - under = node.getElementsByTagName("mjx-under")[0]; - over = node.getElementsByTagName("mjx-over")[0]; + base = CHTML.getNode(node,"mjx-op"); + under = CHTML.getNode(node,"mjx-under"); + over = CHTML.getNode(node,"mjx-over"); nodes[0] = base; nodes[1] = under||over; nodes[2] = over; } else { var types = ["mjx-op","mjx-under","mjx-over"]; @@ -2235,9 +2251,9 @@ // var base, sub, sup; if (stretch) { - base = node.getElementsByTagName("mjx-base")[0]; - sub = node.getElementsByTagName("mjx-sub")[0]; - sup = node.getElementsByTagName("mjx-sup")[0]; + base = CHTML.getNode(node,"mjx-base"); + sub = CHTML.getNode(node,"mjx-sub"); + sup = CHTML.getNode(node,"mjx-sup"); } else { var types = ["mjx-base","mjx-sub","mjx-sup"]; if (this.sup === 1) types[1] = types[2];