Я работаю с веб-сервисом, который даст мне такие значения, как:
var text = "<<<&&&";
И мне нужно напечатать это, чтобы выглядеть как "< && & с javascript.
Но вот catch: я не могу использовать внутренний HTML (я фактически отправляю эти значения в библиотеку прототипов, которая создает текстовые узлы, поэтому не отменяет мою сырую строку html. Если редактирование библиотеки не будет, как бы вы отменили этот html?
Мне нужно взять на себя настоящую сделку, каков риск отказа от этого типа строк? как это работает innerHTML? и какие существуют другие варианты?
EDIT. Проблема заключается не в использовании javascript normal escape/unescape или даже в реализациях jQuery/prototype, а в проблемах безопасности, которые могут возникнуть при использовании любого из этих... aka "Они сказали мне, что их небезопасно использовать"
(Для тех, кто пытается понять, о чем говорит, с innerHTML unescaping этой странной строкой, посмотрите этот простой пример:
<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>