有哪些方法可以用来显示 [in html] 涉及脚本标签的代码段,同时防止浏览器执行该脚本代码?
5 回答
编码所有的<
和>
字符,所以你最终得到
<div>
<h2>Here's some JS code</h2>
<pre>
<script type="text/javascript">
var x = 7;
var y = 10;
if (x < y) {
alert('this alert will not fire!');
}
</script>
</pre>
</div>
您将需要像这样转义与 html 相关的特殊字符:
<body>
<p><script type="text/javascript" ></p>
<p>alert("hello world!");</p>
<p></script><br />
</p>
</body>
完整列表见:http ://www.theukwebdesigncompany.com/articles/entity-escape-characters.php
编码所有 HTML 实体( < 、 > 、 & 等)并将所有内容包装在 pre 标记中以保持您的格式。
<pre>
<script type="text/javascript">
alert('test');
</script>
</pre>
早在 HTML2 时代,就有了<xmp>
和<listing>
元素,这正是:你可以做到。例如
<xmp>Because this is HTML2, there isn't a <script> tag to worry about anyway.</xmp>
</xmp>
它会将标签显示为内容,而不是将它们解释为元素的开始和结束(但由于显而易见的原因,你不能这样做)。
然而,对于浏览器作者和网络作者来说,拥有这种能力实际上带来的问题远远多于他们所帮助的问题。因此,它们在 HTML3.2 中被弃用(或者可以说是 HTML3,但这不是 HTML3 的唯一参数 - 另一个就是上面带有“HTML3”的文档才是重要的......),并用 HTML4 删除。
因此,唯一要做的就是逃避它。
<pre>
有助于格式化,虽然我经常只是做一个查找替换来用不间断的空间交换每个空间。
完成后,您可以比以往任何时候都更漂亮地渲染它,<xmp>
并且<listing>
有诸如beautyOfCode和google-code-prettify之类的库可以为您完成繁重的工作。
老实说,我不确定这是否是一个很好的方法,所以如果不是,我希望有人能告诉我。
如果您不想通过转换器运行代码,可以使用此 jQuery 函数将.html
元素的.text
. 包裹在<pre>
标签内,你有格式化的代码。
var pre = $("pre").html();
$("pre").text(pre);