Javascript 将JS中的HTML实体解码为文本框值
我想从一个字符串(名为descr,来自MySQL数据库)解码所有HTML实体 我使用此功能执行以下操作:Javascript 将JS中的HTML实体解码为文本框值,javascript,jquery,Javascript,Jquery,我想从一个字符串(名为descr,来自MySQL数据库)解码所有HTML实体 我使用此功能执行以下操作: function htmlDecode(input) { var doc = new DOMParser().parseFromString(input, "text/html"); return doc.documentElement.textContent; } 如果我把这个值打印到一个div中,这就行了 document.getElementById('A
function htmlDecode(input) {
var doc = new DOMParser().parseFromString(input, "text/html");
return doc.documentElement.textContent;
}
如果我把这个值打印到一个div中,这就行了
document.getElementById('ABC').innerHTML = htmlDecode(descr); -> Descr = "&" -> Output in Div "&"
但是,如果我将值打印到文本区域,它将不会被解码:
document.getElementById('ABCD').value = htmlDecode(descr); -> Descr = "&" -> Output in Textarea "&"
我花了很多钱,但没有找到解决办法。您能帮助我吗?您需要使用引用的DOMParser
//此函数执行取消跳过
函数htmlDecode(输入){
var doc=new DOMParser().parseFromString(输入,“text/html”);
返回doc.documentElement.textContent;
}
var str=“星条旗”//任意转义字符串
//按原样将转义字符串呈现到div中
document.getElementById(“printhere\u div”).innerHTML=str;
//使用未转换的字符串设置textarea值
document.getElementById(“printhere\u textarea”).value=htmlDecode(str)代码>
目标div
target textarea
innerHTML
将实际的HTML放入元素中,浏览器将其解释为清晰显示<文本区域的代码>值
正在放置原始文本。如果您没有对文本区域进行解码,会发生什么?对不起,这只是对HTML是什么以及元素如何工作的一个简单误解。如果您设置&
转换成一个div,它将把它渲染成&
。。。如果你把它放在一个文本框(或文本区)中,它会逐字显示&代码>谢谢你的回答。不解码textarea值,它仍显示&;你知道有什么解决办法吗?我怎样才能把文本正确地转换成文本区?通常我会使用PHP,但我需要一个JS解决方案,我假设您的MySQL数据库已经有转义值。这是正确的假设吗?是的。DB包含值&;天哪,谢谢你!!