Forum Webscript.Ru
Программирование => JavaScript & JScript => Тема начата: 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;
}
У меня в тексте опций используются специальные символы, напр. —. Как сделать их видимыми в списке?
-
tick
В чем проблемма???
---------------------------------------
Test
-
Проблема? Я вижу на экране —, а хочу видеть длинное тире.
-
tick
хмм... тут нужна перекодировка я что-то не нашел чтобы Javascript мог перекодировать значение переменных... единственное что могу предложить... это способ описанный здесь:
http://www.opennet.ru/tips/info/49.shtml
ИХМО хотя это конечно утопия... :)
-
ну или на худой конец можно сделать что-то вроде этого:
--------------
Test
-
Первое, что приходит в голову, если действительно есть необходимость использовать спец.символы программно - пропускать вставляемые значения через функцию-перекодировщик. У JavaScript я такой не знаю (хотя очень может быть, что она в том или ином виде есть, встроенная или надстроенная).
Пишите сами такую функцию, лучше в отдельном файле, вешаете значения, которые нужно конвертировать, на switch (писанины много, но если есть смысл, можно ее один раз и сделать), и всякий раз, когда Вам это будет нужно, вставляете сей скрипт в страницу и конвертируете своей функцией
optionText = myConvert(optionText);
Вполне вероятно, что есть решение поумнее.
-
Судя по всему JavaScript Guide раздел "Values, Variables, and Literals" никто не читал.
Короче говоря юникодовские коды в JavaScript строках представляются с помощью \\uXXXX, где XXXX это значение в шестнадцатиричном виде.
Так как — это тоже ссылка на символ в юникоде только в десятиричном виде, то переведя в шестнадцатиричный вид 8212 имеем 2014.
В итоге решение
var optionText="\\u2014";
Если входные данные именно в виде —, то я думаю написать функцию распарсивающую эти строки и заменяющие последовательности YYYY; на \\uXXXX - это не проблема.
-
:)
В предыдущем сообщении все нормальные последовательности типа YYYY; появились как символ. Вообщем там где написано длинное тире это значит YYYY; где YYYY - это 8212