Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Замена выделенного текста (https://javascript.ru/forum/events/39754-zamena-vydelennogo-teksta.html)

alexbutav 10.07.2013 17:47

Замена выделенного текста
 
Я делаю так( не для ie, у ie все проще):
selected = window.getSelection();
var selRange = selected.getRangeAt(0);
var div = document.createElement('div');
div.innerHTML = text;
selRange.deleteContents();
selRange.insertNode(div);

Как мне вставлять не div элемент, а просто строку?

animhotep 10.07.2013 17:51

замените var div = document.createElement('div'); на var div = document.createElement('span');

vadim5june 10.07.2013 17:51

попробуйте так
var t=document.createTextNode(text);
selRange.deleteContents();
selRange.insertNode(t);

alexbutav 10.07.2013 18:13

Span - не подходит, нужно просто текст.

vadim5june - ваш вариант почти сработал, только такое ощущение, что он вставляет текст с экранирование спец символов.

До фунцкии:


После функции:

vadim5june 10.07.2013 18:29

это текстовый ноде-в нем только текст и всякие теги он выводит как текст

alexbutav 10.07.2013 18:41

тогда, придется делать через див, а потом удалять <div> и </div> из элеменета.

vadim5june 10.07.2013 18:47

Цитата:

Сообщение от alexbutav (Сообщение 261637)
тогда, придется делать через див, а потом удалять <div> и </div> из элеменета.

Есть для этого DocumentFragment
http://learn.javascript.ru/multi-ins...cumentfragment

alexbutav 10.07.2013 18:55

Спасибо, попробую использовать её.


Часовой пояс GMT +3, время: 02:10.