Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Javascript: Вставка текста в textarea в положение курсора

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VVL99

Цитата:
то она покажет текст в модале

смысл и большая часть кода не для этого, а именно для "обрамления" выделенного текста в тег. получить то выделение не так сложно.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:21 23-04-2012
VVL99

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
Так мне кажется, что если у нас есть переменная, в которую записан нужный текст, то вставить его в поле ввода это уже не так сложно.

Всего записей: 4160 | Зарегистр. 03-02-2011 | Отправлено: 21:35 23-04-2012
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VVL99

Цитата:
что если у нас есть переменная, в которую записан нужный текст

это вам только так кажется, потому что вставить нужно именно туда, где не просто расположен курсор, но и вокруг выделенного текста.
 
это все усложняет и увеличивает код.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:37 23-04-2012
VVL99

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
А я с этого и начал, мой пост с первым кодом именно это и делает, единственное, что там переменная определяется не во всех браузерах, а вторая часть кода именно заменяет выделенный текст в поле ввода на тотже, только с тегом, соответственно, берём переменную из второго кода и всё готово.
Ну, ради интереса сделаю пример.
 
Добавлено:
Вот готовый вариант, идея не моя, но работает во всех браузерах.

Код:
 
<html>
<body>
<p>Напечатайте текст, выделите его и нажмите ссылку BB code.</p>
<textarea id = "postarea" class = "text_area" rows = "5" cols = "120" name = "txt"></textarea>
<a href="#" onClick = "javascript:tag_add(postarea, '[spoiler]', '[/spoiler]')"><b>BB code</b></a>
</body>
<script>
function tag_add(obj, str1, str2) {  
    if(document.selection) {                                                                          // Для IE
        var s = document.selection.createRange();
        if (s.text) {
        s.text = str1 + s.text + str2
        } else {
            obj.value = obj.value + str1 + str2
        }
    }
    else if (typeof(obj.selectionStart) == "number") {                                      // Opera, FireFox, Chrome
        if (obj.selectionStart != obj.selectionEnd) {
            var start = obj.selectionStart;
            var end = obj.selectionEnd;
            s = obj.value.substr(start,end-start);
            obj.value = obj.value.substr(0, start) + str1 + s + str2 + obj.value.substr(end)
        } else {
            obj.value = obj.value + str1 + str2
        }
    }
}
</script>
</html>
</html>
 

 
 
А вот ещё ужал
 

Код:
 
<html>
<body>
<p>Напечатайте текст, выделите его и нажмите ссылку BB code.</p>
<textarea id = "postarea" class = "text_area" rows = "5" cols = "120" name = "txt"></textarea>
<a href="#" onClick = "javascript:tag_add(postarea, '[spoiler]', '[/spoiler]')"><b>BB code</b></a>
</body>
<script>
function tag_add(obj, str1, str2) {  
    if(document.selection) {                                               // Для IE
        var s = document.selection.createRange();
        if (s.text) {
            s.text = str1 + s.text + str2
        }
    } else {                                                               // Opera, FireFox, Chrome
        var start = obj.selectionStart;
        var end = obj.selectionEnd;
        s = obj.value.substr(start,end-start);
        obj.value = obj.value.substr(0, start) + str1 + s + str2 + obj.value.substr(end)
    }
}
</script>
</html>
 

Всего записей: 4160 | Зарегистр. 03-02-2011 | Отправлено: 21:42 23-04-2012 | Исправлено: VVL99, 17:18 25-04-2012
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можно этот скрипт:
 

Код:
 
<html>  
<body>  
<p>Напечатайте текст, выделите его и нажмите ссылку BB code.</p>  
<textarea id = "postarea" class = "text_area" rows = "5" cols = "120" name = "txt"></textarea>  
<a href="#" onClick = "javascript:tag_add(postarea, '[spoiler]', '[/spoiler]')"><b>BB code</b></a>  
</body>  
<script>  
function tag_add(obj, str1, str2) {  
    if(document.selection) {                                               // Для IE  
        var s = document.selection.createRange();  
        if (s.text) {  
            s.text = str1 + s.text + str2  
        }  
    } else {                                                               // Opera, FireFox, Chrome  
        var start = obj.selectionStart;  
        var end = obj.selectionEnd;  
        s = obj.value.substr(start,end-start);  
        obj.value = obj.value.substr(0, start) + str1 + s + str2 + obj.value.substr(end)  
    }  
}  
</script>  
</html>

 
не много доработать, после того как нажал, курсор стоит возле [//spoiler] а не летает где-то....
спасибо)

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 19:41 01-08-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Интернет » Web-программирование » Javascript: Вставка текста в textarea в положение курсора


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru