我正在使用一个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 = "<<<&&&";
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)