2017-04-20 37 views
0

工作echo'ed文本我從PHP呼應的文字通過我的HTML頁面上的AJAX調用我的網頁上加載。我希望Highlight.js通過這個文本並突出顯示我的語法。但是,它不突出顯示文字。當我直接在HTML頁面上執行此操作時:Highlight.js不是從PHP

<pre> 
    <code id=resultDiv style="text-align:right;"> 
     <p> int main() </p> 
    </code> 
</pre> 

它的工作原理。突出顯示int main()。然而,

echo 
    "int main()"; 

甚至

echo "<p> int main() </p>" 

從我的PHP文件頁面同樣resultDiv 沒有得到強調。

有沒有解決這個問題?爲什麼會發生?

+0

@stackundeflow原諒我,如果我歪曲後續HTML的格式(例如通過'echo')...我想改進格式 –

回答

1

如果我明白你的問題吧,你從加載使用Ajax PHP頁面的內容。

當使用highlight.js時,它會遍歷你的html並突出顯示「load」事件之後的所有內容,但是你的Ajax調用在這個事件之後異步發生,這意味着內容在hightlight.js完成之後被加載。

highlight.js有highlightBlock function將觸發代碼高亮通,在你的情況下,它看起來像下面的代碼行

hljs.highlightBlock(document.getElementById("resultDiv")); 

,你得把後,你的內容是添加到DOM

+0

工作,謝謝!最初,我試圖做一個initHighlighting(),但由於某種原因,這並不起作用。我很高興highlightBlock的作品! – stackunderflow

+0

這是因爲initHighlighting()只約束突出通到負載的事件,所以,當已經發生的事件會發生什麼 – nickforall