Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > получить HTML-код выделенного фрагмента


Автор: Evghenusi 14.9.2011, 00:51
Как получить HTML-код выделенного фрагмента?

Для IE6 нашёл ответ: document.selection.createRange().htmlText;
А как получить в остальных браузерах не знаю. Нашёл вот такой код:
Код
var range = window.getSelection().getRangeAt(0);
var e = document.createElement('span');
e.appendChild(range.cloneContents());
alert(e.innerHTML);

но достаёт теги только если кроме слова выделить и пробел, подскажите как сделать аналог "IE-го кода".

p.s. решение нужно без использования библиотек.
p.s.s. если без библиотек "вообще" никак, то можно и с ними.

Автор: 0Scrum 14.9.2011, 13:58
http://habrahabr.ru/blogs/javascript/55922/

Автор: Evghenusi 14.9.2011, 15:17
0Scrum, на эту статью напарывался, но как говорится "смотрю в книгу, вижу фигу".
Укажите пальцем на какое свойство или метод обратить внимание, если не трудно.

Автор: 0Scrum 14.9.2011, 15:27
"2.1. Получаем пользовательское выделение" 

Код

$selection = {
  getText : function() {
    var txt = '';
    if (txt = window.getSelection) // Not IE, используем метод getSelection
      txt = window.getSelection().toString();
    else // IE, используем объект selection
      txt = document.selection.createRange().text;
    return txt;
  }
}

Автор: Evghenusi 14.9.2011, 15:43
0Scrum,  smile  чё-т всё равно не догоняю.

Мне нужны и теги между которыми находится выделенный текст. (пример: txt="<b>Hello, World</b>")

Автор: 0Scrum 14.9.2011, 16:45
А вот проморгал этот момент, думал только выделенный текст нужен.

Автор: Evghenusi 14.9.2011, 16:58
если бы  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)