Javascript 如何在jQuery中将换行符从HTMLdiv复制到textarea?
考虑以下HTML页面片段:Javascript 如何在jQuery中将换行符从HTMLdiv复制到textarea?,javascript,jquery,html,textarea,text-formatting,Javascript,Jquery,Html,Textarea,Text Formatting,考虑以下HTML页面片段: <div id='myDiv'> Line 1.<br /> Line 2<br /> These are <special> characters & must be escaped !@@><> </div> <input type='button' value='click' id='myButton'
<div id='myDiv'>
Line 1.<br />
Line 2<br />
These are <special> characters & must be escaped !@@><>
</div>
<input type='button' value='click' id='myButton' />
<textarea id='myTextArea'></textarea>
<script>
$(document).ready(function () {
$('#myButton').click(function () {
var text = $('#myDiv').text();
$('#myTextArea').val(text);
});
});
</script>
<div id='myDiv'><pre>
Line 1.
Line 2
These are <special> characters & must be escaped !@@><>
</pre></div>
第1行。
第2行
这些是<;特殊字符&;一定要逃走@@
$(文档).ready(函数(){
$('#myButton')。单击(函数(){
var text=$('#myDiv').text();
$('#myTextArea').val(文本);
});
});
首先,有一个id为myDiv
的div元素。它包含一些类似于在运行时在我的生产网站中从SQL数据库检索的文本
接下来是一个按钮和一个文本区域。单击按钮时,我希望myDiv
中的文本显示在文本区域中
然而,使用我提供的代码,换行符被剥离出来。考虑到转义特殊字符是绝对不可协商的,我能做些什么呢?您的代码在Firefox和Chrome中都非常适合我: 但是,如果您的客户端不执行您想要的操作,请使用换行符替换
s
编辑:在IE7中测试,代码中断。所以我用我的建议更新了小提琴:像这样做你的HTML:
第1行。
第2行
这些是<;特殊字符&;一定要逃走@@
现在
.text()
将返回与您在
标记中指定的文本完全相同的文本,即使在IE中也是如此。我应该补充的是,从用户输入的文本区域中读取换行符对我来说一直没有问题。问题在于在文本区域中设置文本。到目前为止,我找到的唯一解决方案是将文本保存在一个序列化字符串中,但这感觉真的像是一个难题。在Chrome中为我工作。那很有趣。我甚至很少在Firefox中测试我的代码,因为我们是一家只支持IE的商店:-(:-(:-)(:-)(不幸的是,你用换行符替换
的建议不起作用,因为$('#myTextArea')。val()
返回第1行。第2行这些…
没有任何断行的迹象。你在JSFIDLE上链接的解决方案对我不起作用。它得到了正确的断行符,但没有转义特殊字符。这将使普通用户无法使用这些字符,并使它们受到恶意使用的XSS攻击到目前为止,我倾向于像以前一样只使用序列化字符串。您必须明确要转义的字符。我需要转义所有可能不安全的字符。好的,这意味着,和&