0

ユーザーにコードを出力またはエコー バックしたいのですが、実行しようとすると ILLEGAL エラーが発生します。以下のコードを実行するのではなく、通常のテキストとして表示するにはどうすればよいですか。

alert('<script>hello</script>');

次のように、エラーが発生したときにjQueryを使用してテキストボックスに出力しようとしました:

$('.printed-code').val('<script> write your code between these lines </script>');

4

4 に答える 4

3

JavaScript を<script>要素に配置している場合</script>、文字列リテラルの は、スクリプトの一致する終了タグとして認識されます。文字列をエスケープ シーケンスで分割します (JS 文字列リテラルで\/は、 と同じ意味/です)。

$('.printed-code').val('<script> write your code between these lines <\/script>');

…またはスクリプトを外部ファイルに保持し、<script src="foo.js"></script>.


ユーザーに情報を表示する場合は、 を使用してはならない<input>ため、text()メソッドではなくメソッドが必要になりますval()。(当面のタスクに適した要素または何かに.printed-code一致すると仮定します)。<code>

$('code.printed-code').text('<script> write your code between these lines </script>');
于 2013-07-27T13:59:21.547 に答える
1

/次のようにエスケープする必要があります<\/script>。そうしないと、特に</スクリプトブロックが終了する古いブラウザーでエラーが発生します (not </script>)

于 2013-07-27T14:00:12.400 に答える
-2

scriptタグは文字通り解釈されています。

試す:

alert('&lt;script&gt;hello&lt;/script&gt;')
于 2013-07-27T13:59:47.077 に答える