将MathJax加载到已加载的div中

时间:2013-03-21 06:00:43

标签: php html mathjax

不完全确定如何说出这个问题。

我有一个网站,涉及使用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。有谁知道我能做什么来做到这一点?等式存储为辅助文件中的类中的变量,并打印出来。它做了什么,但它不会排版

1 个答案:

答案 0 :(得分:0)

每次加载新内容后,请调用此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元素。我不确定使用元素名称本身是否有效,但我不这么认为......