2013-03-21 65 views
0

不完全確定如何解釋此問題。將MathJax加載到加載的div中

我有一個網站,涉及使用MathJax來顯示數學問題。網頁上的文字是根據用戶搜索的內容從單獨的文件加載的。因此,例如,搜索「蘋果」會出現「蘋果」頁面。這段文本存儲在第二個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。任何人都知道我能做些什麼來做到這一點?該公式作爲變量存儲在輔助文件的類中,並打印出來。它確實,但是它不會排版

回答

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元素。我不知道如果使用元素名稱本身可以工作,但我不這麼認爲...

+0

感謝尼克,它的作品完美!我不明白在哪裏放置它,儘管如此,經過一些測試後,它將其置於compendium()函數下,然後在加載其他所有內容後由該函數調用。再次感謝,它完全符合我的需要! – 2013-03-21 15:41:06