2

スクリプトタグを含むコードセグメントを[htmlで]表示し、同時にそのスクリプトコードのブラウザ実行を防ぐために使用できる方法は何ですか?

4

5 に答える 5

5

<すべてのと文字をエンコードする>ので、最終的には

<div>
   <h2>Here's some JS code</h2>

   <pre>
      &lt;script type="text/javascript"&gt;
         var x = 7;
         var y = 10;
         if (x &lt; y) {
            alert('this alert will not fire!');
         }
      &lt;/script&gt;
    </pre>
</div>
于 2012-08-31T18:19:36.833 に答える
2

次のような特別なhtml関連の文字をエスケープする必要があります。

  <body>
    <p>&lt;script type="text/javascript" &gt;</p>
    <p>alert("hello world!");</p>
    <p>&lt;/script&gt;<br />
    </p>
  </body>

完全なリストについては、http ://www.theukwebdesigncompany.com/articles/entity-escape-characters.phpを参照してください。

于 2012-08-31T18:26:17.167 に答える
1

すべてのHTMLエンティティ(<、>、など)をエンコードし、すべてをpreタグでラップしてフォーマットを維持します。

<pre>
  &lt;script type="text/javascript"&gt;
    alert('test');
  &lt;/script&gt;
</pre>

便利なコンバーター: http: //www.rishida.net/tools/conversion/

于 2012-08-31T18:30:02.200 に答える
1

HTML2の時代には、まさにこれを実現するための要素がありまし<xmp>た。<listing>例えば

<xmp>Because this is HTML2, there isn't a <script> tag to worry about anyway.</xmp>

また、タグを要素の開始と終了として解釈するのではなく、コンテンツとして表示します(</xmp>ただし、明らかな理由により、タグを表示することはできませんでした)。

ただし、この機能を使用すると、ブラウザの作成者とWebの作成者の両方にとって、実際には、支援したよりもはるかに多くの問題が発生しました。したがって、それらはHTML3.2で非推奨になり(またはおそらくHTML3ですが、それがHTML3の唯一の引数ではありませんでした。もう1つは、「HTML3」が含まれるドキュメントがカウントされたものでした...)、HTML4で削除されました。

したがって、行うべき唯一のことはそれを脱出することです。

<pre>書式設定に役立ちますが、代わりに各スペースを改行しないスペースと交換するために、find-replaceを実行することがよくあります。

これで、これまでにないほどきれいにレンダリングできます。beautyOfCode<xmp>google-code-prettifyの<listing>ようなライブラリがあり、手間のかかる作業を行うことができます。

于 2012-08-31T18:43:58.587 に答える
0

正直なところ、これがこれを行うのに最適な方法かどうかはわかりません。そうでない場合は、誰かに教えてもらいたいと思います。

コンバーターを介してコードを実行したくない場合は、このjQuery関数を使用して.html、要素のをとして表示できます.text。タグの中に包まれて、<pre>フォーマットされたコードを持っています。

var pre = $("pre").html();
$("pre").text(pre);​

http://jsfiddle.net/charlescarver/hqh8q/1/

于 2012-08-31T18:58:28.077 に答える