2015-11-13 37 views
2

我试图使用jQuery用下面的代码保存在一个文本字段中的HTML代码转义HTML填写的textarea:jQuery的:在Chrome

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;

+1

你想看到的HTML textarea的? – void

+0

对不起,没有。我想使用'textarea.select();'将html代码存储在textarea中以供后者使用。 –

回答

0

JQuery的解决方案

你使用jQuery如此神奇:

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

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

 
$('#select-btn').click(function() { 
 
    $('#container textarea').select(); 
 
})
<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>

+0

你的代码似乎是正确的。我缺少其他东西或者我不知道如何解释它,但是我希望能够将复制的文本(经过一些jquery修改后)粘贴到富文本编辑器中(如http://ckeditor.com/demo或MS-Word)中。实际上,如果我粘贴示例中的复制文本,则会粘贴:'

您好,我的名字是Sam

',而不是格式化的文本。例如,如果我复制并粘贴'

你好,我的名字是Sam

',我想粘贴:你好我的名字是** Sam **。对不起,我的错。如果没有其他事情发生,我会选择你的答案。 –

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 
+0

谢谢。我只用console.log来说明问题。我需要使用存储在textarea后面的内容。用户选择html代码,html代码存储在textarea中,后者,html代码被另一个函数使用。我需要在该函数中使用'textarea.select();',并且html字符会被转义。 –