1

コードスニペットシステムを構築していて、jQueryを使用してエディターを表示しています。jQueryがインラインPHPコードをコメントアウトするのが好きだと気づきました。これを防ぐ方法はありますか?

<textarea id='beep'></textarea>

jQueryコード:

var code = "<div>Why <?php echo 'hello'; ?> there!</div>";
var parsed = $(code).html();
$('#beep').val(parsed);

これは私がテキストエリアに表示したいものです:

Why <?php echo 'hello'; ?> there!

しかし、代わりにjQueryは次のように変更します。

Why <!--?php echo 'hello'; ?--> there!

これはおそらくセキュリティ対策だと思いますが、これを防ぐ方法はありますか?

HTMLエンティティを使用してこれを回避できることは知っていますが、このツールの性質上、意図的にhtmlエンティティを含むコードスニペットが投稿されるのを妨げます。

JSFiddle: http: //jsfiddle.net/YB4fD/1/

追加ノード:いくつかの回答は、JavaScriptを使用してjQueryなしでこれを処理することを示唆していますが、jQueryが必要です。私の文字列には、jQueryを使用して解析しているDOMツリーが含まれています。

4

2 に答える 2

1

これを試して:

var code = "<div>Why &lt;?php echo 'hello'; ?&gt; there!</div>";
于 2013-02-09T02:01:20.393 に答える
0

これでうまくいきます。

var code = "Why <?php echo 'hello'; ?> there!";
document.getElementById('beep').appendChild(document.createTextNode(code));

textarea-element 内で他の要素を使用することは無効です。

于 2013-02-09T01:24:34.967 に答える