相关疑难解决方法(0)

如何在JavaScript中unescape html?

我正在使用一个Web服务,它会给我以下值:

var text = "<<<&&&";
Run Code Online (Sandbox Code Playgroud)

我需要使用javascript将其打印为"<<< &&&".

但是这里有一个问题:我不能使用内部HTML(我实际上是将这些值发送到创建文本节点的原型库,因此它不会取消我的原始html字符串.如果编辑库不是一个选项,如何你会忘记这个HTML吗?

我需要在这里承担真正的交易,这种类型的字符串有什么风险?innerHTML是如何做到的?还有哪些其他选择?

编辑 - 问题不是关于使用javascript普通的escape/unescape甚至jQuery/prototype实现它们,而是关于可能来自使用任何这些的安全问题...又名"他们告诉我使用它们是非常不安全的"

(对于那些试图用innerHTML来解决这个奇怪字符串的问题,请看看这个简单的例子:

<html>
<head>
<title>createTextNode example</title>

<script type="text/javascript">

var text = "&lt;&lt;&lt;&amp;&amp;&amp;";
function addTextNode(){
    var newtext = document.createTextNode(text);
    var para = document.getElementById("p1");
    para.appendChild(newtext);
}
function innerHTMLTest(){
    var para = document.getElementById("p1");
    para.innerHTML = text;
}
</script>
</head>

<body>
<div style="border: 1px solid red">
<p id="p1">First line of paragraph.<br /></p>
</div><br />

<button onclick="addTextNode();">add another textNode.</button>
<button onclick="innerHTMLTest();">test innerHTML.</button>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

html javascript escaping

17
推荐指数
2
解决办法
4万
查看次数

标签 统计

escaping ×1

html ×1

javascript ×1