diff --git a/unpacked/MathJax.js b/unpacked/MathJax.js index a8516038b..1c4d79fb4 100644 --- a/unpacked/MathJax.js +++ b/unpacked/MathJax.js @@ -1975,7 +1975,7 @@ MathJax.Hub = { getJaxFor: function (element) { if (typeof(element) === 'string') {element = document.getElementById(element)} if (element && element.MathJax) {return element.MathJax.elementJax} - if (element && element.isMathJax) { + if (this.isMathJaxNode(element)) { while (element && !element.jaxID) {element = element.parentNode} if (element) {return MathJax.OutputJax[element.jaxID].getJaxFromMath(element)} } @@ -1984,14 +1984,17 @@ MathJax.Hub = { isJax: function (element) { if (typeof(element) === 'string') {element = document.getElementById(element)} - if (element && element.isMathJax) {return 1} - if (element && element.tagName != null && element.tagName.toLowerCase() === 'script') { + if (this.isMathJaxNode(element.tagName)) {return 1} + if (element && (element.tagName||"").toLowerCase() === 'script') { if (element.MathJax) {return (element.MathJax.state === MathJax.ElementJax.STATE.PROCESSED ? 1 : -1)} if (element.type && this.inputJax[element.type.replace(/ *;(.|\s)*/,"")]) {return -1} } return 0; }, + isMathJaxNode: function (element) { + return !!element && (element.isMathJax || (element.tagName||"").substr(0,4) === "MJX-"); + }, setRenderer: function (renderer,type) { if (!renderer) return; @@ -2644,7 +2647,7 @@ MathJax.Hub.Startup = { } }, HashCheck: function (target) { - if (target.isMathJax) { + if (this.isMathJaxNode(target)) { var jax = MathJax.Hub.getJaxFor(target); if (jax && MathJax.OutputJax[jax.outputJax].hashCheck) {target = MathJax.OutputJax[jax.outputJax].hashCheck(target)} diff --git a/unpacked/extensions/MathEvents.js b/unpacked/extensions/MathEvents.js index ff6d316c0..eb2fb8200 100644 --- a/unpacked/extensions/MathEvents.js +++ b/unpacked/extensions/MathEvents.js @@ -250,7 +250,7 @@ if (SETTINGS.discoverable || SETTINGS.zoom === "Hover") { var from = event.fromElement || event.relatedTarget, to = event.toElement || event.target; - if (from && to && (from.isMathJax != to.isMathJax || + if (from && to && (HUB.isMathJaxNode(from) !== HUB.isMathJaxNode(to) || HUB.getJaxFor(from) !== HUB.getJaxFor(to))) { var jax = this.getJaxFromMath(math); if (jax.hover) {HOVER.ReHover(jax)} else {HOVER.HoverTimer(jax,math)} @@ -267,7 +267,7 @@ if (SETTINGS.discoverable || SETTINGS.zoom === "Hover") { var from = event.fromElement || event.relatedTarget, to = event.toElement || event.target; - if (from && to && (from.isMathJax != to.isMathJax || + if (from && to && (HUB.isMathJaxNode(from) !== HUB.isMathJaxNode(to) || HUB.getJaxFor(from) !== HUB.getJaxFor(to))) { var jax = this.getJaxFromMath(math); if (jax.hover) {HOVER.UnHover(jax)} else {HOVER.ClearHoverTimer()}