为什么执行pre或code block中的JS代码?

时间:2011-05-24 09:57:19

标签: javascript html

我一直试图在页面中显示一些JS代码。我尝试过使用

<pre >
    <code>
        <script type="text/javascript"> 
            $(function(){
                alert("Hello");
            });
        </script>
    </code>
</pre>

但是如果在页面中加载了jQuery,那么我收到警报并且代码没有显示。如何在不执行JS的情况下显示此JS。我尝试了SyntaxHighLighter插件,它突出了代码,但我仍然收到警报。

向用户显示此JS代码而不执行它们的最佳方法是什么。

2 个答案:

答案 0 :(得分:19)

因为<pre><code>都不是“不要将此视为标记”。

<pre>表示“在这里渲染空白”

<code>表示“以这样的方式呈现此(即使用适当的字体等),以便它通知读者它是代码样本”。

如果您想使用HTML中具有特殊含义的字符(例如<),那么您仍然需要使用实体来表示它们。

    {li> &lt; < {li> &gt; > {li> &amp; &

您不必担心'",因为您不在属性值中。

答案 1 :(得分:6)

使用<script>标签意味着这是要执行的javascript。

完全删除<script>代码:

<pre>
<code>
$(function(){
        alert("Hello");
    });
</code>
</pre>

或者,将<>编码为&lt;&gt;,以便将<script>标记呈现为文本,而不是解释为脚本标记:< / p>

<pre>
<code>
&lt;script type="text/javascript"&gt;
$(function(){
        alert("Hello");
    });
&lt;/script&gt;
</code>
</pre>