0

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

我有一个涉及使用 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。有人知道我能做些什么吗?方程作为变量存储在辅助文件的一个类中,并打印出来。它会做什么,但它不会排版

4

1 回答 1

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 元素。我不确定使用元素名称本身是否有效,但我不这么认为......

于 2013-03-21T07:22:01.620 回答