Estoy trabajando con un servicio web que me dará valores como:¿Cómo descomprimir html en javascript?
var text = "<<<&&&";
y necesito para imprimir esta parecerse a "< < < & & &" con javascript.
Pero aquí está el truco: no puedo usar HTML interno (de hecho estoy enviando estos valores a una biblioteca de prototipos que crea Nodos de Texto para que no separe mi cadena html cruda. Si edita la biblioteca no se una opción, ¿cómo unescape este html?
necesito undertand el verdadero negocio aquí, ¿cuál es el riesgo de representación no literal de este tipo de cadenas? ¿cómo innerHtml lo hace, y qué otras opciones existen?
EDIT - El problema no se trata de usar javascript normal escape/unescape o incluso implementaciones jQuery/prototype de ellos, sino de los problemas de seguridad que podrían venir de nosotros ing any of this ... alias "Me dijeron que era bastante inseguro usarlos"
(Para aquellos que intentan entender de qué demonios estoy hablando con innerHTML, separando esta extraña cadena, mira este simple ejemplo:
<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>
Esto es realmente útil. Entonces, en resumen, si algo viene de un usuario, ¿debería ser TextNode? – DFectuoso
@DFectuoso: ese es un enfoque, que funciona si no desea que puedan usar ninguna característica HTML. Si, por ejemplo, desea que diseñen su texto, debe descubrir cómo hacerlo de manera segura ... – Stobor
Información interesante sobre cuestiones de seguridad. –