Реклама на сайте Advertise with us

Помогите с ява-скриптом

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 13/01/09 в 19:06       Ответить с цитатойцитата 

есть яваскрипт, вставляет переменную в поле textarea

var text='bla bla ] bla'
document.getElementById('txt').value += text + '\n';

в поле textarea вставляется текст 'bla bla ] bla'

как вставить нормальный текст, вида 'bla bla ] bla', тоесть нужно заменять все спецсимволы "&#...;" налету???

0
 



С нами с 16.10.06
Сообщения: 56
Рейтинг: 259

Ссылка на сообщениеДобавлено: 13/01/09 в 19:22       Ответить с цитатойцитата 

Встроенных функций нет, но можно сделать свою, заменяя по регексам на символы с соответствующими кодами. Вроде такого (навскидку):

Код:

String.prototype.entitiesToStr = function()
{
    return this.replace(/&#(\d+);?/gi,
        function(match, p1, offset, s)
        {
            return String.fromCharCode(p1);
        }
    );
}


А, ну и пользоваться потом типа:

Код:
text = text.entitiesToStr()

8
 



С нами с 15.03.08
Сообщения: 33
Рейтинг: 96

Ссылка на сообщениеДобавлено: 15/01/09 в 19:29       Ответить с цитатойцитата 

Учитывая что html entities бывают не только цифровыми, но также именованными и шестнадцатиричными - логично предоставить браузеру самому разбираться с этими тонкостями. Сделать это проще всего использовав element.innerHTML и заставив браузер преобразовывать строку самостоятельно в соответствии со всеми правилами парсинга HTML. Немного модифицированный вариант:

Код:
<html>
<body>
<textarea id="ta" style="width: 200px; height: 100px"></textarea>
<script language="JavaScript">
var str = 'bla &#93; bla &#x53; &quot; bla &mdash; bla';
String.prototype.entitiesToStr = function()
{
    if (typeof(___ets)=='undefined')
        ___ets = document.createElement('div');
    var v = this.replace(/&apos;/g,'&#39;');        // MSIE 6 incorrectly converts &apos; entity
    ___ets.innerHTML = v;
    return ___ets.innerHTML;
}

document.getElementById('ta').value = str.entitiesToStr();
</script>
</body>
</html>


К сожалению &amp; &lt; и &gt; ни в одном браузере нормально не конвертятся в символы...

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »