【问题标题】:Loading MathJax into loaded div将 MathJax 加载到加载的 div 中
【发布时间】:2013-03-21 15:22:01
【问题描述】:

不完全确定如何表达这个问题。

我有一个使用 MathJax 来显示数学问题的网站。页面上的文本是根据某人搜索的内容从单独的文件中加载的。因此,例如,搜索“apple”会打开“apple”页面。该文本存储在第二个 php 文件中的一个类中,并且在其中也输入了数学方程。但是,一旦我将方程式加载到页面中,它就不会排版它:

<script type="text/javascript" 
src="https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">

function compendium()
{
    document.getElementById('title').innerHTML = '<?php echo $pageTitle ?>';
    document.getElementById('body').innerHTML = '<?php links($pageBody, $new_classes) ?>';
    document.getElementById('nav').innerHTML = '<?php echo $pageNav ?>';
}
</script>

<script type="text/x-mathjax-config">
MathJax.Hub.Config({
    tex2jax: {
    displayMath: [['[math]','[math]']]}
});
</script>

我不完全确定要做什么,但我希望它在加载后排版 euqation。有人知道我能做些什么吗?方程作为变量存储在辅助文件的一个类中,并打印出来。它会这样做,但不会排版

【问题讨论】:

    标签: php html mathjax


    【解决方案1】:

    每次加载新内容后调用这个javascript函数

    function update_mathjax(){
        MathJax.Hub.Queue(['Typeset',MathJax.Hub,'body']);
    }
    

    这里'body' 可以替换为您想要更新的任何 div 的 id,这样您就可以执行类似的操作

    function update_mathjax(id){
        MathJax.Hub.Queue(['Typeset',MathJax.Hub,id]);
    }
    

    然后致电update_mathjax('body')update_mathjax('title')。这些是 div id 的记住,而不是 html 元素。我不确定使用元素名称本身是否可行,但我不这么认为......

    【讨论】:

    • 谢谢尼克,它工作完美!我不明白到底应该把它放在哪里,所以经过一些测试,结果证明它可以通过将它放在 compendium() 函数下面,然后在加载其他所有内容后由该函数调用。再次感谢,它完全符合我的需要!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 2010-11-17
    相关资源
    最近更新 更多