Javascript 使用jQuery'转义放置的内容;s.html()函数

Javascript 使用jQuery'转义放置的内容;s.html()函数,javascript,jquery,escaping,html-entities,Javascript,Jquery,Escaping,Html Entities,我需要接受任意用户输入。稍后,我想将已经转义为HTML实体的输入复制到文本区域,以便对其进行编辑。但是,jQuery的jQuery.html()函数读取html实体,就像它们是真正的html一样,并将用户脚本直接注入页面中。我需要抓取用户输入的内容,即使它包含标记,并将其输出到可编辑的文本区域 所以,我需要这个: <textarea name="empty"></textarea> <div name="user-input"> &lt;script&

我需要接受任意用户输入。稍后,我想将已经转义为HTML实体的输入复制到文本区域,以便对其进行编辑。但是,jQuery的
jQuery.html()
函数读取html实体,就像它们是真正的html一样,并将用户脚本直接注入页面中。我需要抓取用户输入的内容,即使它包含
标记,并将其输出到可编辑的文本区域

所以,我需要这个:

<textarea name="empty"></textarea>
<div name="user-input"> &lt;script&gt; window.alert('hi'); &lt;/script&gt; </div>
我试过几种不同的方法,但都没用

请参阅以获取测试用例

编辑:

见下面的讨论。我的解决方案是使用
jquery.val()
而不是
jquery.html()
。我跳过了val,因为我觉得它是
jquery.attr('value',new_value)
的别名,它有自己的注入问题(可以用“)。
val()
attr('value',val)
不同,在我的简短测试中,它似乎不会被注入

如果有人稍后遇到此问题,并且知道
val
实际上不是一种安全的方法,请立即回答并更新我们

谢谢

$('#edit-textarea').val(($('#user-input').text()));
对我来说效果很好。我还尝试使用
.text()
而不是
.val()
,当然它也保留了转义。如果不希望数据是html,请不要使用
.html()


我之前在调整值,但这并不是修改textarea内容的正确位置,我的引号也没有预先转义,因此简单的“插入”允许用户插入。我希望避免这种情况;通过使用html(),我只想填充介于和之间的区域,进一步考虑,val()似乎将该值设置为JavaScript属性。我一直认为这只是一个快捷方式,可以使用
attr('value',new_value)
,所以这可能会奏效。谢谢,我会试试的。HTML只是开始的位置。从那时起,一切都在DOM中发生。
<textarea name="empty"> <script> window.alert('hi'); </script> </textarea>
 $('#edit-textarea').html(($('#user-input').text()));
$('#edit-textarea').val(($('#user-input').text()));