用html代码突出显示

Kal*_*zem 8 html javascript prettify syntax-highlighting

如何设置我的HTML代码以使highlight.js美化它?

我试过了

<pre>
    <code>
        <!-- HTML Prettify -->
        <div>
            <pre class="pre-code-ception"><code> haha </code></pre>
        </div>
    </code>
</pre>
Run Code Online (Sandbox Code Playgroud)

我确实放在我的文件的末尾:

<script type="text/javascript">
    hljs.initHighlightingOnLoad();
</script>
Run Code Online (Sandbox Code Playgroud)

但是一切都显示为纯HTML.

Cam*_*ron 19

哦,我想我明白了这个问题.您需要在<code>元素中转义HTML ,否则它将被解释为HTML而不是文本(您希望HTML按字面显示,而不是解释为网页结构的一部分).

更改代码示例中的每个<to &lt;>to &gt;以及任何其他特殊HTML字符.(如果您正在动态生成页面,大多数语言都有一个实用程序函数来为您转义HTML.)


pje*_*han 6

没有jQuery的user2932428解决方案:

document.querySelectorAll("code").forEach(function(element) {
    element.innerHTML = element.innerHTML.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#039;");
});
Run Code Online (Sandbox Code Playgroud)

  • 免责声明:我是Highlight.js 的当前维护者。这只是询问 HTML 或 JS 注入式攻击的安全问题。请不要这样做。代码需要在服务器上转义 - 在它到达客户端之前,而不是之后。 (3认同)