![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Контрибьютор базы знаний по Флекс
Регистрация: Aug 2005
Сообщений: 690
|
Всем привет!
Вопрос вот такой. Есть что-то наподобие автоматического выделения текста разными способами - жирным, подчеркиванием и т.п. Пример здесь www.career.ru/andrey/selection.html Проблема в том, что если текст прописан в самом документе, то он вставляется и теги добавляются отлично, но если текст находится в самой форме, то ничего не возвращается. А ведь замысел таков, чтобы вставить текст и редактировать его в форме. Проблема актуальна только для netscape движков. В IE все работает ок. Пожалуйста, помогите кто-нибудь чем-нибудь. Где-то прочел, что это вообще невозможно. Так ли это? Короче как на форуме при создании новой темы можно теги вставлять...) Последний раз редактировалось baron27; 09.11.2005 в 13:31. |
|
|||||
|
Отвечают разработчики phpBB:
function bbfontstyle(bbopen, bbclose) { var txtarea = document.post.message; if ((clientVer >= 4) && is_ie && is_win) { theSelection = document.selection.createRange().text; if (!theSelection) { txtarea.value += bbopen + bbclose; txtarea.focus(); return; } document.selection.createRange().text = bbopen + theSelection + bbclose; txtarea.focus(); return; } else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0)) { mozWrap(txtarea, bbopen, bbclose); return; } else { txtarea.value += bbopen + bbclose; txtarea.focus(); } storeCaret(txtarea); }
__________________
Тут вы найдете ответы на почти все вопросы: А можно ли сделать так ? - Можно. Почему не работает ? - Неправильно сделано. Где ошибка ? - В ДНК. |
|
|||||
|
Контрибьютор базы знаний по Флекс
Регистрация: Aug 2005
Сообщений: 690
|
Спасибо, но
document.selection - это IE document.getSelection() - NN |
|
|||||
|
Читаем внимательно:
if ((clientVer >= 4) && is_ie && is_win) { //тут работа с осликом } else { // а вот тут с мозилкой, оперой и т.д. //txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0) }
__________________
Тут вы найдете ответы на почти все вопросы: А можно ли сделать так ? - Можно. Почему не работает ? - Неправильно сделано. Где ошибка ? - В ДНК. |
|
|||||
|
Контрибьютор базы знаний по Флекс
Регистрация: Aug 2005
Сообщений: 690
|
Ок. Разглядел. Спасибо. Ща попробую.
|
|
|||||
|
Контрибьютор базы знаний по Флекс
Регистрация: Aug 2005
Сообщений: 690
|
Нашел функцию mozwrap. Совсем запутался. Не подскажешь как ее на практике применить)
function mozWrap(txtarea, open, close) { var selLength = txtarea.textLength; var selStart = txtarea.selectionStart; var selEnd = txtarea.selectionEnd; if (selEnd == 1 || selEnd == 2) selEnd = selLength; var s1 = (txtarea.value).substring(0,selStart); var s2 = (txtarea.value).substring(selStart, selEnd) var s3 = (txtarea.value).substring(selEnd, selLength); txtarea.value = s1 + open + s2 + close + s3; return; } |
|
|||||
|
Так и применить
Подаешь ей на вход ссылку на TEXTAREA, в которой выделение хочешь в теги заключить, и тег, который поставить в начало выделения и в конец.В твоем случае - mozWrap(document.myForm.myArea, "<b>", "</b>"); ПО строкам разбирать ее ? ![]()
__________________
Тут вы найдете ответы на почти все вопросы: А можно ли сделать так ? - Можно. Почему не работает ? - Неправильно сделано. Где ошибка ? - В ДНК. |
|
|||||
|
Контрибьютор базы знаний по Флекс
Регистрация: Aug 2005
Сообщений: 690
|
Спасибо большое! Все понял. Просто не врубался в textarea
![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:59. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|