jquery:在Chrome中使用未转义的html填充textarea

时间:2015-11-13 20:25:24

标签: javascript jquery html google-chrome

我正在尝试使用带有以下代码的jquery将html代码存储在textarea字段中:

var text ="<p>Hello, my name is Sam</p>";
var textarea = d.createElement( 'textarea' ); // Creates textarea to store text
div.appendChild( textarea );
textarea.innerHTML  = text; 
// $("textarea").val(modified_clipboard_text); // same issue
console.log( textarea.innerHTML ); // output should not be escaped html

问题是,html字符串会转换为转义实体(至少在Chrome中)。例如:<p>转换为&lt;p&gt;

2 个答案:

答案 0 :(得分:0)

您可以使用此功能:

function htmlUnescape(encodedString){
    return $("<p/>").html(encodedString).text(); 
}

喜欢

var text ="<p>Hello, my name is Sam</p>";
var textarea = d.createElement( 'textarea' ); // Creates textarea to store text
div.appendChild( textarea );
textarea.innerHTML  = text; 
// $("textarea").val(modified_clipboard_text); // same issue
console.log( htmlUnescape(textarea.innerHTML) ); // output should not be escaped html

答案 1 :(得分:0)

JQuery解决方案

你正在使用jquery所以为什么不使用魔法:

&#13;
&#13;
var text ="<p>Hello, my name is Sam</p>";

$('#container').append('<textarea></textarea>');
$('#container textarea').val(text);

$('#select-btn').click(function() {
    $('#container textarea').select();
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='container'></div>
</br>
<button id='select-btn'>Select</button>
&#13;
&#13;
&#13;