Перекодировка текста
У меня примерно такой скрипт...
// Функция перекодировки текста function recode(str) { // Определение длины строки len = str.length; for (ich=0; ich <= len-1; ich++) { ch = str.substr(ich,1); // Определение замен if (ch == "А"){document.write("<#1041;");} ... if (ch == "я"){document.write("<1103;");} } } По поводу его работы у меня возникают некоторые вопросы: 1. Как сделать, чтобы можно было обрабатывать не просто строку, а целиком текст? 2. Как установить этот скрипт на нажатие кнопки? 3. Как сделать, чтобы обрабатывался текст, который я вставлю в <textarea> непосредственно на странице? Я пробовал сделать это так: // Выполнение при нажатии кнопки function textit() { document.write("<html><head><meta http-equiv='Content-Type' content='text/html; charset=windows-1251'><title>" + tit + "</title></head><body><form method=get action=/cgi-bin/proba><center><table><tr><td><textarea cols='100' rows='40'><script>recode('" + document.form.textarea + "');</script></textarea></td></tr></table><table width='100'><tr><td><input type='button' value='Перевести' onClick='textit();' size=2></td></tr></table></center></form></body></html>"); } Но понял, что таким образом я не добьюсь желаемого результата, потому что функция обрабатывается так: <script> recode('Строка 1'); recode('Строка 2'); recode('Строка 3'); </script> То есть при явном указании обрабатываемого текста!!! |
1. Бессмысленный вопрос.
2. Скрипт придется переписать, потому что сейчас, с использованием document.write, вы не сможете установить его, как обработчик. Потому что после полной загрузки страницы, вызов document.write перезаписывает весь вывод страницы. 3. С этим есть сложности, потому что не все браузеры поддерживают такое специфическое событие, ведь вставить можно не только комбинацией ctrl+v, которую можно отловить, но и через контекстное меню. И, кроме всего прочего, чего вы хотите добиться этим скриптом? Ведь введенный в textarea текст будет отображаться в той кодировке, в который отображается страница, а вставленные через JavaScript спец символы, вроде &#xxxx;, будут отображаться текстовой записью, а не символом другой кодировки. Может ваша проблема имеет более подходящие решения, например серверными силами? |
Цитата:
|
2. нужно вместо document.write использовать конкатенацию строк(+), а результат вставлять куда надо. А обработчик назначить через атрибут onclick кнопки либо после загрузки документа
3. получить доступ к содержимому textarea можно следующим образом: document.getElementById('textAreaId').value |
Цитата:
—І® ¦Ґ ў»шҐ ў±Ґг® ±ўҐтҐ?‹ѕЎ®ўј?’®«јЄ® Ј®р»! : )- - - - - - - - - - -‚ —Ђ’› Ќ… ‡‚Ђ’њ!†€‡Ќ€ € „…Ќњѓ€ Ќ… Љ‹џЌ—€’њ!‚‘… ђЂ‚ЌЋ Ќ… „ЂЊ!ЉЌЋЏЋ—Ќ›Њ ‘…Љ‘ЋЊ Ќ… ‡ЂЌ€ЊЂћ‘њ! ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~—І® ІҐбҐ Ї®д рЁІј?Њ®¦ҐІ ІҐµ ¦ір ўлҐ©?—І® і®сїІ ѕЈЏҐ±нЁ °і±±кЁµ Ї®лҐ©?Њ®¦ҐІ ±ЁнЁ© Іім ?Њ®¦ҐІ їЎл®нЁ ¶ўҐІ ?„«ї ¬Ґнї ЁчҐг® Ґв®§м®¦н®г® ҐІ!—І® ІҐбҐ Ї®д рЁІј,—Ґ«®вҐЄ ¬®© ¤®р®г®©?Љ Є ±і¤јЎі Ў« г®д рЁІј,—І® ±ўҐл ¬Ґнї ± І®б®©? „«ї ¬Ґнї ЁчҐг® Ґв®§м®¦н®г® ҐІ!!! t „ «јёҐ. аЏ®®Ўщ Іј±ї. Ни один браузер (IE, Mozilla, Opera и т. д.) не может понять эту белиберду. Можете сами попробовать :) мне бы хотелось привести этот текст в читабельный вид! |
а javascript при чем? Штирлиц в студию
а что за текст? А то только часть удалось прочитать ;-) |
Цитата:
Я только не совсем понял, где именно вставлять document.getElementById('textAreaId').value и как с ним работать. А за Штирлица спасибо, пригодится в хозяйстве ;) Кстати, текст я из бинарника вынул :D Если заинтересовало, могу весь файл дать ;) |
Цитата:
Цитата:
var a = document.getElementById('textAreaId').value; записывает в a содержимое textarea (textAreaId - id элемента textarea) document.getElementById('textAreaId').value = 'текст'; изменяет содержимое textarea а вообще почитай статьи |
Одно дело прочитать статью и совсем другое - что-то из нее понять. Я перечитал уже все учебники, какие смог найти. Но обычно там все ограничивается:
document.open(); document.write('Hello, world!'); document.close(); или еще проще: alert("Hello, world!") Проще написать собственный скриптовый язык, состоящий из набора русских слов :) |
Объясните мне, чем вам поможет код из первого сообщения (где нормальные буквы заменяются на символы unicode-последовательности) в перекодировке неизвестного текста, который весь в закорючках?
|
Часовой пояс GMT +3, время: 08:46. |