Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: tick от 12 Января 2005, 15:26:43

Название: Вывод специальных символов в OPTION
Отправлено: tick от 12 Января 2005, 15:26:43
Помогите!?

Динамически создаю SELECT:

for (var i=0; i < theSelect.length; i++) {
    newOption = new Option(optionText, optionValue);
    theSelect.options[theSelect.length] = newOption;
}

У меня в тексте опций используются специальные символы, напр. &#8212. Как сделать их видимыми в списке?
Название: Вывод специальных символов в OPTION
Отправлено: commander от 12 Января 2005, 16:53:40
tick
В чем проблемма???
---------------------------------------


   Test







Название: Вывод специальных символов в OPTION
Отправлено: tick от 12 Января 2005, 17:08:03
Проблема? Я вижу на экране &#8212, а хочу видеть длинное тире.
Название: Вывод специальных символов в OPTION
Отправлено: commander от 12 Января 2005, 18:27:33
tick
хмм... тут нужна перекодировка я что-то не нашел чтобы Javascript мог перекодировать значение переменных... единственное что могу предложить... это способ описанный здесь:
http://www.opennet.ru/tips/info/49.shtml
ИХМО хотя это конечно утопия... :)
Название: Вывод специальных символов в OPTION
Отправлено: commander от 12 Января 2005, 18:31:24
ну или на худой конец можно сделать что-то вроде этого:
--------------


Test






Название: Вывод специальных символов в OPTION
Отправлено: virka от 13 Января 2005, 17:05:31
Первое, что приходит в голову, если действительно есть необходимость использовать спец.символы программно - пропускать вставляемые значения через функцию-перекодировщик. У JavaScript я такой не знаю (хотя очень может быть, что она в том или ином виде есть, встроенная или надстроенная).
Пишите сами такую функцию, лучше в отдельном файле, вешаете значения, которые нужно конвертировать, на switch (писанины много, но если есть смысл, можно ее один раз и сделать), и всякий раз, когда Вам это будет нужно, вставляете сей скрипт в страницу и конвертируете своей функцией
optionText = myConvert(optionText);
Вполне вероятно, что есть решение поумнее.
Название: Вывод специальных символов в OPTION
Отправлено: alm от 15 Января 2005, 08:59:11
Судя по всему JavaScript Guide раздел "Values, Variables, and Literals" никто не читал.

Короче говоря юникодовские коды в JavaScript строках представляются с помощью \\uXXXX, где XXXX это значение в шестнадцатиричном виде.

Так как — это тоже ссылка на символ в юникоде только в десятиричном виде, то переведя в шестнадцатиричный вид 8212 имеем 2014.

В итоге решение
var optionText="\\u2014";

Если входные данные именно в виде —, то я думаю написать функцию распарсивающую эти строки и заменяющие последовательности  &#YYYY; на \\uXXXX - это не проблема.
Название: Вывод специальных символов в OPTION
Отправлено: alm от 15 Января 2005, 09:02:01
:)

В предыдущем сообщении все нормальные последовательности типа &#YYYY; появились как символ. Вообщем там где написано длинное тире это значит &#YYYY; где YYYY - это 8212