|
|
|
| Привет! У меня вот какой вопрос. Как в textarea сделать так, чтобы при клике на кнопочку (ну как в гостевых и форумах ) там добавлялся код какой-то именно в то место, где курсор стоит. А то я могу только сделать так, чтобы в самый конец текста добавлялось
Спасибо заранее | |
|
|
|
|
|
|
|
для: Natascha
(20.11.2007 в 09:42)
| | используйте нормальные браyзеры и проблем не будет | |
|
|
|
|
|
|
|
для: Natascha
(20.11.2007 в 09:42)
| | Вы имеете ввиду вставку ВВ-кода? | |
|
|
|
|
|
|
|
для: sim5
(20.11.2007 в 10:43)
| | ну не совсем BB, но кода. То есть я хочу сделать возможность того, чтобы кликнул по картинке со смайликом, его код появился там , где был курсор. Я просто не знаю как сделать это.
И простите пожалуйста, что значит использовать нормальные браузеры? Я вроде нормальными пользуюсь, и не вижу связи с моей проблемой
Спасибо | |
|
|
|
|
|
|
|
для: Natascha
(20.11.2007 в 11:16)
| | в нормальных браузерах BB-код встает в позицию курсора и вопросов такиx не возникает. | |
|
|
|
|
|
|
|
для: 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)"
При обработки сообщения нужно будет заменить регулярным выражением на изображение то, что находится между двумя двоеточиями. | |
|
|
|
|
|
|
|
для: sim5
(20.11.2007 в 11:37)
| | Благодарю) | |
|
|
|
|
|
|
|
для: sim5
(20.11.2007 в 11:37)
| | К сожалению, оказалось, что в FF не работает данный, код(добавляет код в конец строки), а в Opera и IE нормально | |
|
|
|
|
|
|
|
для: Natascha
(21.11.2007 в 11:07)
| | Да, действительно, надо будет внести изменения. | |
|
|
|