MathJax无法使用iFrame

时间:2015-03-02 03:50:47

标签: javascript jquery html iframe mathjax

我试图通过点击事件在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([])吗?

2 个答案:

答案 0 :(得分:1)

您无法在iframe外部使用MathJax来处理iframe中的数学运算。您需要在iframe中加载MathJax。如果您需要通过调用iframe内的MathJax,您仍然可以从外部触发MathJax,前提是内容来自与容器相同的域。否则,您需要设置一个事件监听器并使用postMessage与iframe进行通信。

答案 1 :(得分:0)

最后我找到了解决这个问题的方法。 只需使用HTML5 ContentEditale Div。

替换iFrame

现在工作正常......