テキストエリア内に以下のようなものを書くと
<strong>test</strong>
textarea 内に配置し、div 内に表示します。htmlコードをそのまま表示するのではなく、テキストを太字で表示します。では、html コードのレンダリングを回避するにはどうすればよいでしょうか。ユーザーが入力したテキストをそのまま表示したいだけです。
テキストエリア内に以下のようなものを書くと
<strong>test</strong>
textarea 内に配置し、div 内に表示します。htmlコードをそのまま表示するのではなく、テキストを太字で表示します。では、html コードのレンダリングを回避するにはどうすればよいでしょうか。ユーザーが入力したテキストをそのまま表示したいだけです。
あなたは私たちにコードを見せていませんが、これにタグを付けているので、jQuery
次のようなものがあると思います:
$('div').html(
$('textarea').val()
);
text
代わりにメソッドを使用して、ユーザーが入力した内容が HTML ではなくテキストとして扱われるようにします。
$('div').text(
$('textarea').val()
);
デモンストレーションをご覧ください。
HTMLフォーマットをエスケープする必要があります
これはうまくいくはずです
var someHtmlString = "<strong>test</strong>";
var escaped = $("div.someClass").text(someHtmlString).html();
タグを使用し<pre>
て、ユーザー入力をそのまま表示できます。これにより、スペースや改行などのすべての書式が保持されます
<textarea rows="4" cols="50"></textarea>
<div>
<pre id="output">
</pre>
</div>
js
$('textarea').keyup(function(){
$('#output').text($(this).val());
});
<strong>test</strong>
生産する<strong>test</strong>
これらは HTML エンティティと呼ばれ、通常<foo>
は HTML タグを意味し、レンダリングされることになっているため、そのように動作します。w3schools の HTML エンティティの詳細を読む