Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: textarea и положение крусора
 
 автор: Natascha   (20.11.2007 в 09:42)   письмо автору
 
 

Привет! У меня вот какой вопрос. Как в textarea сделать так, чтобы при клике на кнопочку (ну как в гостевых и форумах ) там добавлялся код какой-то именно в то место, где курсор стоит. А то я могу только сделать так, чтобы в самый конец текста добавлялось
Спасибо заранее

   
 
 автор: elenaki   (20.11.2007 в 10:11)   письмо автору
 
   для: Natascha   (20.11.2007 в 09:42)
 

используйте нормальные браyзеры и проблем не будет

   
 
 автор: sim5   (20.11.2007 в 10:43)   письмо автору
 
   для: Natascha   (20.11.2007 в 09:42)
 

Вы имеете ввиду вставку ВВ-кода?

   
 
 автор: Natascha   (20.11.2007 в 11:16)   письмо автору
 
   для: sim5   (20.11.2007 в 10:43)
 

ну не совсем BB, но кода. То есть я хочу сделать возможность того, чтобы кликнул по картинке со смайликом, его код появился там , где был курсор. Я просто не знаю как сделать это.
И простите пожалуйста, что значит использовать нормальные браузеры? Я вроде нормальными пользуюсь, и не вижу связи с моей проблемой
Спасибо

   
 
 автор: elenaki   (20.11.2007 в 11:34)   письмо автору
 
   для: Natascha   (20.11.2007 в 11:16)
 

в нормальных браузерах BB-код встает в позицию курсора и вопросов такиx не возникает.

   
 
 автор: sim5   (20.11.2007 в 11:37)   письмо автору
 
   для: Natascha   (20.11.2007 в 11:16)
 

Я делаю так:

var text = "";
AddTxt = "";
function getActiveText(selectedtext) { 
 text = (document.all) ? document.selection.createRange().text : document.getSelection();
 if (selectedtext.createTextRange) {
  selectedtext.caretPos = document.selection.createRange().duplicate();
 }
return true;
}

function AddText(NewCode) {
 if (document.forms['postenrty'].elements['message'].createTextRange && document.forms['postenrty'].elements['message'].caretPos) {
   var caretPos = document.forms['postenrty'].elements['message'].caretPos;
   //здесь получаем позицию и если это не пробел, то добавляем пробел в тексте,
  //так чтобы смайлик не был приклеен к тексту - можно и удалить это
   caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? NewCode + ' ' : NewCode;
  } else {
    document.forms['postenrty'].elements['message'].value+=NewCode
  }
    document.forms['postenrty'].elements['message'].focus();
    AddTxt = "";
}

function smilie(smilie) {
  AddSmile = " :"+smilie+": "; //так будет выглядеть вставка смайлика для регулярного выражения
  AddText(AddSmile);
}


В смайлик добавляем вызов функции:

<img src=/images/smiles/1.gif onclick="smilie(1)" />

Здесь пример, если картинки смайликов - это просто нумерованные изображения, но это могут быть и их текстовые эквиваленты.

В textarea долбавляем:

onChange="getActiveText(this)" onFocus="getActiveText(this)"

При обработки сообщения нужно будет заменить регулярным выражением на изображение то, что находится между двумя двоеточиями.

   
 
 автор: Natascha   (20.11.2007 в 15:54)   письмо автору
 
   для: sim5   (20.11.2007 в 11:37)
 

Благодарю)

   
 
 автор: Natascha   (21.11.2007 в 11:07)   письмо автору
 
   для: sim5   (20.11.2007 в 11:37)
 

К сожалению, оказалось, что в FF не работает данный, код(добавляет код в конец строки), а в Opera и IE нормально

   
 
 автор: sim5   (21.11.2007 в 11:33)   письмо автору
 
   для: Natascha   (21.11.2007 в 11:07)
 

Да, действительно, надо будет внести изменения.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования