ibiz
есть яваскрипт, вставляет переменную в поле textarea
var text='bla bla ] bla'
document.getElementById('txt').value += text + '\n';
в поле textarea вставляется текст 'bla bla ] bla'
как вставить
нормальный текст, вида 'bla bla ] bla', тоесть нужно заменять все спецсимволы "&#...;" налету???
Some Milk
Встроенных функций нет, но можно сделать свою, заменяя по регексам на символы с соответствующими кодами. Вроде такого (навскидку):
Код:
String.prototype.entitiesToStr = function()
{
return this.replace(/&#(\d+);?/gi,
function(match, p1, offset, s)
{
return String.fromCharCode(p1);
}
);
}
А, ну и пользоваться потом типа:
Код:
text = text.entitiesToStr()
flying
Учитывая что html entities бывают не только цифровыми, но также именованными и шестнадцатиричными - логично предоставить браузеру самому разбираться с этими тонкостями. Сделать это проще всего использовав element.innerHTML и заставив браузер преобразовывать строку самостоятельно в соответствии со всеми правилами парсинга HTML. Немного модифицированный вариант:
Код:
<html>
<body>
<textarea id="ta" style="width: 200px; height: 100px"></textarea>
<script language="JavaScript">
var str = 'bla ] bla S " bla — bla';
String.prototype.entitiesToStr = function()
{
if (typeof(___ets)=='undefined')
___ets = document.createElement('div');
var v = this.replace(/'/g,'''); // MSIE 6 incorrectly converts ' entity
___ets.innerHTML = v;
return ___ets.innerHTML;
}
document.getElementById('ta').value = str.entitiesToStr();
</script>
</body>
</html>
К сожалению & < и > ни в одном браузере нормально не конвертятся в символы...