Sto lavorando con un servizio web che mi darà valori come:Come rimuovere un html in javascript?
var text = "<<<&&&";
E ho bisogno di stampare questo per apparire come "< < < & & &" con javascript.
Ma ecco il trucco: non è possibile utilizzare l'HTML interno (in realtà sto inviando questi valori a una libreria prototipo che crea nodi di testo in modo che non annulli la stringa html non elaborata. un'opzione, come si dovrebbe unescape questo html?
ho bisogno di undertand il vero affare qui, qual è il rischio di unescaping questo tipo di stringhe? come fa innerHTML lo fa? e ciò che esiste altre opzioni?
EDIT - Il problema non consiste nell'usare javascript normal escape/unescape o anche jQuery/prototype implementazioni di essi, ma sui problemi di sicurezza che potrebbero venire da noi un po 'di tutto questo ... alias "Mi hanno detto che era piuttosto insicuro usarli"
(Per coloro che cercano di capire cosa diavolo sto dicendo con innerHTML senza sfuggire questa strana stringa, dai un'occhiata a questo semplice esempio:
<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>
Questo è veramente utile. Quindi, in fondo, se c'è qualcosa proveniente da un utente, dovrebbe essere TextNode ?? – DFectuoso
@DFectuoso: questo è un approccio, che funziona se non si desidera che siano in grado di utilizzare le funzionalità HTML. Se, per esempio, vuoi che siano loro a scrivere il loro testo, devi capire come farlo in modo sicuro ... – Stobor
Interessanti informazioni sui problemi di sicurezza. –