1

如果我在 textarea 中写下类似下面的内容

<strong>test</strong>

在 textarea 中,然后在 div 中显示它。它以粗体显示文本,而不是按原样显示 html 代码。那么我怎样才能避免渲染html代码。我只想显示它是用户输入的文本。

4

5 回答 5

3

您没有向我们展示任何代码,但由于您已标记此代码,jQuery我假设您有类似的内容:

$('div').html(
     $('textarea').val()
);

请改用该text方法,因此用户键入的内容将被视为文本而不是 HTML。

$('div').text(
     $('textarea').val()
);

演示

于 2013-05-08T16:29:08.630 回答
2

您可以使用该<pre>标签,以便它按原样显示用户输入。这会保留所有格式,例如空格和换行符

<textarea  rows="4" cols="50"></textarea>
<div>
   <pre id="output">
   </pre>
</div>  

js

$('textarea').keyup(function(){
$('#output').text($(this).val()); 
});

http://jsfiddle.net/WPQLP/5/

于 2013-05-08T17:33:34.220 回答
2

您需要转义 html 格式

这应该工作

var someHtmlString = "<strong>test</strong>";
var escaped = $("div.someClass").text(someHtmlString).html();

资源

于 2013-05-08T16:28:39.727 回答
1

您需要将<and>字符转义为它们的 HTML 实体。

&lt;strong&gt;test&lt;/strong&gt;

JSFiddle

于 2013-05-08T16:28:02.103 回答
0

&lt;strong&gt;test&lt;/strong&gt;生产<strong>test</strong>

这些被称为 HTML 实体并且行为类似,因为通常<foo>意味着一个 HTML 标记,并且它应该被渲染。在 w3schools 上阅读有关 HTML 实体的更多信息

于 2013-05-08T16:30:07.980 回答