MathJax 不适用于 iFrame
MathJax not working with iFrame
我正在尝试通过点击事件在 iFrame 上调用 MathJax 函数。这是代码
html
<body onLoad="ifon();">
<iframe name="richTextField" id="richTextField" style="border:#000000 1px solid; width:700px; height:300px;"></iframe>
<button onclick="refresh();"></button>
</body>
javascript
function ifon(){
richTextField.document.designMode = 'On';
}
function refresh(){
var richTextField = document.getElementById("richTextField");
if(richTextField != null) {
var get_iframe_text = richTextField.contentWindow.document.body.innerHTML;
if(get_iframe_text.slice(-6) == "$$<br>"){
//Trying to call MathJax on iFrame
MathJax.Hub.Queue(["Typeset",MathJax.Hub,richTextField]);
alert("Success");
}
}
}
只有最后六个字符是$$<br>
才会执行嵌套if条件的refresh()
任何人都可以帮助我如何在 iFrame 上调用 MathJax.Hub.Queue([]) 吗?
您不能从 iframe 外部使用 MathJax 来处理 iframe 中的数学。您需要在 iframe 本身中加载 MathJax。如果需要,您仍然可以从外部触发 MathJax,方法是调用 iframe 内的 MathJax,前提是内容来自与容器相同的域。否则,您需要设置事件侦听器并使用 postMessage
与 iframe 通信。
我终于找到了解决这个问题的方法。 只需将 iFrame 替换为 HTML5 ContentEditale Div。
现在一切正常...
我正在尝试通过点击事件在 iFrame 上调用 MathJax 函数。这是代码
html
<body onLoad="ifon();">
<iframe name="richTextField" id="richTextField" style="border:#000000 1px solid; width:700px; height:300px;"></iframe>
<button onclick="refresh();"></button>
</body>
javascript
function ifon(){
richTextField.document.designMode = 'On';
}
function refresh(){
var richTextField = document.getElementById("richTextField");
if(richTextField != null) {
var get_iframe_text = richTextField.contentWindow.document.body.innerHTML;
if(get_iframe_text.slice(-6) == "$$<br>"){
//Trying to call MathJax on iFrame
MathJax.Hub.Queue(["Typeset",MathJax.Hub,richTextField]);
alert("Success");
}
}
}
只有最后六个字符是$$<br>
任何人都可以帮助我如何在 iFrame 上调用 MathJax.Hub.Queue([]) 吗?
您不能从 iframe 外部使用 MathJax 来处理 iframe 中的数学。您需要在 iframe 本身中加载 MathJax。如果需要,您仍然可以从外部触发 MathJax,方法是调用 iframe 内的 MathJax,前提是内容来自与容器相同的域。否则,您需要设置事件侦听器并使用 postMessage
与 iframe 通信。
我终于找到了解决这个问题的方法。 只需将 iFrame 替换为 HTML5 ContentEditale Div。
现在一切正常...