Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/34: Рейтинг темы: голосов - 34, средняя оценка - 4.53
 Аватар для GENDALF_ISTARI
16 / 33 / 19
Регистрация: 20.08.2013
Сообщений: 740

Вставить в указном месте курсора текст

05.03.2018, 16:51. Показов 6374. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Jquery HTML Вставить в указном месте курсора текст

HTML5
1
2
3
<h1 id="Texting" contenteditable="true">11111111111111111111</h1>
 
<button id="BTNAdd">Вставить Текст</button>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
var $Text=$('#Texting');
var $BTN=$('#BTNAdd');
 
$BTN.click( function(){
   var str="НЕ КРИЧИ, МНЕ В УХО!";
   //Положение Курсора offset
   var offset =$Text.offset();
   
   //Елемент 
   $Text.append("<p>"+str+"</p>");
});
Честно это добавить в конец что не надо
нужно елемент добавить в указаном месте курсора

Не могу понять толи нужно забрать весь текст html()
дальше перебрав длину текста вычеслить offset позицию
и добавить как текст на определенной позиции
дальше этот текст заменить на новый
html(str);

толи есть какая то другая функция что позволяет
добавлять елемент в указаной позиции курсора в елементе
Кто нибудь знает ??

Добавлено через 25 минут
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
function insertTextAtCursor(text)
{
    let selection = window.getSelection();
    let range = selection.getRangeAt(0);
    range.deleteContents();
    let node = document.createTextNode(text);
    range.insertNode(node);
 
    for(let position = 0; position != text.length; position++)
    {
        selection.modify("move", "right", "character");
    };
}
Помошники мать вас , за ногу

Добавлено через 3 минуты
Не годиться этот код , он не совместим с другими браузерами
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.03.2018, 16:51
Ответы с готовыми решениями:

Вставить текст в нужном месте: RichEdit
Не знаю как осуществить следующую вещь: необходимо вставить слово в том месте на котором в данный момент находится указатель

Вставить текст в позицию курсора в TextBox
Я могу просто вставить текст - textbox1.Text:='текст'; А как его вставить туда где курсор ?

Как вставить в RichTextBox текст после курсора?
Здравствуйте. Подскажите, пожалуйста, как вставить в richTextBox текст после курсора?

5
 Аватар для GENDALF_ISTARI
16 / 33 / 19
Регистрация: 20.08.2013
Сообщений: 740
06.03.2018, 19:43  [ТС]
HTML5
1
2
3
4
5
6
7
8
<meta charset="utf-8">
 
<script src="jquery.min.js"></script>
 
<h1 id="Texting" contenteditable="true">11111111111111111111111111111</h1>
 
<input id="TextVal" type="text" value="555" />
<button id="BTN">ADDING</button>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function insertTextAtCursor(text) {
    var sel, range, html;
    if (window.getSelection) {
        sel = window.getSelection();
        if (sel.getRangeAt && sel.rangeCount) {
            range = sel.getRangeAt(0);
            range.deleteContents();
            range.insertNode( document.createTextNode(text) );
        }
    } else if (document.selection && document.selection.createRange) {
        document.selection.createRange().text = text;
    }
} 
 
 
/////////////////BTN//////////////////////
$('#BTN').click( function(){
    var text=$('#TextVal').val();
    insertTextAtCursor("<h3>"+text+"</h3>");
    //Чутку схитрим
    var html_content=$('#Texting').text();
    $('#Texting').html(html_content);
});
Чутку схитрил
инфы маловато одни textarea но все они текстовые
а такого примера нету

Добавлено через 26 минут
В случаи если нужно подсветить
то что вы добавили, и различать от другого текста
используем Стили
Дело в том что был добавлен <h3>"+text+"</h3>" тег
значит нужно подсветить его

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<style>
h3 {
    border: 2px solid #000;
}
h3:hover {
    border-style: inset; 
}
h3:hover {
    border-color: #f00; 
}
 
//Убираем выделение если оно существует
h3 {
  color: blue;
  background-color:transparent; 
}
</style>
Зачем это вообще
напомню Браузеры поддерживают теги
даже теги , что не относяться к HTML
то есть можно создать свои теги
например

<Gondor>ТЕКСТ ВСТАВКИ</Gondor>

<Sauron>ТЕКСТ ВСТАВКИ</Sauron>

Аналогично можно для этих тегов стиль представить
и эти теги будут различаться от обычных , значит нужна подсветка
Вот зачем стили

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<style>
Sauron {
    border: 2px solid #000;
}
Sauron:hover {
    border-style: inset; 
}
Sauron:hover {
    border-color: #f00; 
}
 
//Убираем выделение если оно существует из за Sauron
Sauron {
  color: blue;
  background-color:transparent; 
}
</style>
Зачем нужны свои теги, думаю логично понимать , считав
id="Texting" можно отобрать все теги Sauron, и получить их id
дальше можно взаемодействовать только с тем что добавил
при этом не трогая стандартные HTML что будут находиться в id="Texting"

Для будущих чертей )))

Добавлено через 3 минуты
В случаи ошибки, Текст тегов ТЕКСТ ВСТАВКИ останиться )) вот в чем выгада))
0
707 / 309 / 191
Регистрация: 05.03.2015
Сообщений: 822
07.03.2018, 00:17
Что за монолог я только что прочитал и зачем?...
0
 Аватар для GENDALF_ISTARI
16 / 33 / 19
Регистрация: 20.08.2013
Сообщений: 740
07.03.2018, 00:55  [ТС]
Все это делалось для своего редактора )))
В случаи ошибки, Текст тегов ТЕКСТ ВСТАВКИ останиться )) вот в чем выгада))

ошибка будет заключаться в скрипте , но тег сделает свое
выведет стандартный текст
0
707 / 309 / 191
Регистрация: 05.03.2015
Сообщений: 822
07.03.2018, 01:41
Теперь намного понятней, спасибо
0
 Аватар для GENDALF_ISTARI
16 / 33 / 19
Регистрация: 20.08.2013
Сообщений: 740
08.03.2018, 19:11  [ТС]
Это более неплохой пример

HTML5
1
2
3
4
5
6
7
8
<meta charset="utf-8">
 
<script src="jquery.min.js"></script>
 
<h1 id="Texting" contenteditable="true">11111111111111111111111111111</h1>
 
<input id="TextVal" type="text" value="555" />
<button id="BTN">ADDING</button>

JavaScript
1
2
3
4
5
6
7
8
9
10
11
/////////////////BTN//////////////////////
$('#BTN').click( function(){
    var text=$('#TextVal').val();
    var tegadd="<h3>"+text+"</h3>";
 
    var htmlText = $("#Texting").html()
    var position = document.getSelection().anchorOffset;
    var result =  htmlText.slice(0, position) + tegadd+ htmlText.slice(position);
    console.log(result); 
    $("#Texting").html(result);
});
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.03.2018, 19:11
Помогаю со студенческими работами здесь

Как вставить текст на место курсора в EditText android
Всем привет!!! У меня такая проблема: Что-бы перемешать курсор я использую этот код: if (Build.VERSION.SDK_INT &gt;= 11) { ...

Определить позицию курсора в текстовом поле, и вставить туда текст
как получить текущую позицию курсора из текстового поля и вставить на его место текст?

Набор текст в одном месте, аналогичный тест появлялся бы в другом месте. Word 2016
Нужно чтобы при наборе текста в одном месте аналогичный тест появлялся бы в другом месте в ворде 2016. Есть договор в нем на разных...

Вывод фигуры на месте курсора мыши
Я нарисовал фигуру ,но не понимаю ,как при условии ,когда курсор на widget ,вместо него появлялась эта фигура,а кто курсор уходит с widget...

Вставка содержимого буфера обмена в месте расположения курсора
Нужно скопировать заданный текст в буфер обмена и вставить его в активное поле активного окна. Запускать по сочетанию клавиш. С...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru