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

问题描述

| 我一直试图在页面显示一些JS代码
<pre >
    <code>
        <script type=\"text/javascript\"> 
            $(function(){
                alert(\"Hello\");
            });
        </script>
    </code>
</pre>
但是,如果将jQuery加载到页面中,则我将收到警报,并且代码不会显示。我如何在不执行JS的情况下显示此JS。我尝试使用SyntaxHighlighter插件,并突出显示代码,但仍然收到警报。 在不执行用户的情况下向用户显示此JS代码的最佳方法是什么。     

解决方法

因为
<pre>
<code>
都不表示\“不要将其视为标记\”。
<pre>
表示\“在此处渲染空白\” “ 2”表示“以某种方式(例如,使用适当的字体等)来告知读者它是一个代码示例”。 如果要使用在HTML中具有特殊含义的字符(例如
<
),则仍然必须使用实体来表示它们。
&lt;
<
&gt;
>
&amp;
&
您不必担心
\'
\"
,因为您不在属性值之内。     ,使用
<script>
标记意味着这是要执行的javascript。 完全删除
<script>
标签:
<pre>
<code>
$(function(){
        alert(\"Hello\");
    });
</code>
</pre>
或者,将
<
>
编码为
&lt;
&gt;
,以便将
<script>
标记呈现为文本,而不解释为脚本标记:
<pre>
<code>
&lt;script type=\"text/javascript\"&gt;
$(function(){
        alert(\"Hello\");
    });
&lt;/script&gt;
</code>
</pre>