Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.01.2014, 06:34
Новичок на форуме
Отправить личное сообщение для SeaGull Посмотреть профиль Найти все сообщения от SeaGull
 
Регистрация: 26.01.2014
Сообщений: 9

Обработка выделенного текста
Добрый день.

На странице имеется текст с картинками. Пользователь выделяет текст, нажимает кнопку, и скрипт обрабатывает выделенное.

При обработке выделения через window.getSelection() в получаемом блоке присутствует только голый текст, и полностью отсутствует какая-либо информация о попавших в выделение изображениях.

Подскажите пожалуйста, как захватить текст вместе с информацией о присутствующих в нем изображениях ?

Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 26.01.2014, 14:14
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

Сообщение от SeaGull
как захватить текст вместе с информацией о присутствующих в нем изображениях ?
window.getSelection().getRangeAt(0).cloneContents( ) - заселекченный кусок в виде documentFragment - можно смотреть его чилды.

для старых IE:
document.selection.createRange().htmlText - заселекченное в виде html-текста, если оное вставить в div - дальше можно смотреть его чилды.


всякие там проверки на нулл и try/catch добавь сам по настроению.

http://habrahabr.ru/post/55922/

Последний раз редактировалось Яростный Меч, 26.01.2014 в 14:24.
Ответить с цитированием
  #3 (permalink)  
Старый 26.01.2014, 21:29
Новичок на форуме
Отправить личное сообщение для SeaGull Посмотреть профиль Найти все сообщения от SeaGull
 
Регистрация: 26.01.2014
Сообщений: 9

Сообщение от Яростный Меч
window.getSelection().getRangeAt(0).cloneContents( ) - заселекченный кусок в виде documentFragment - можно смотреть его чилды.

Спасибо.
Но там только список child'ов, без информации где именно в тексте они находились. Т.е. исходный HTML-код выделения по этой информации восстановить не удастся.

Перечитал свой исходный текст. Прошу прощения, видимо я некорректно выразился. На выходе нужен именно HTML-код выделенного блока.

Грубый пример для наглядности: на форуме есть сообщение с графическими смайликами. Пользователь выделяет часть текста и жмет "Цитировать". В цитату выделенный текст также должен попасть со смайликами.
Ответить с цитированием
  #4 (permalink)  
Старый 26.01.2014, 22:24
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

Сообщение от SeaGull
Перечитал свой исходный текст. Прошу прощения, видимо я некорректно выразился. На выходе нужен именно HTML-код выделенного блока.
...cloneContents(), как уже говорилось, создает documentFragment.

для html-текста надо сделать так:
var df = window.getSelection().getRangeAt(0).cloneContents();
var div = document.createElement("div");
div.appendChild(df);
var html = div.innerHTML; // истина тут


------
у тебя WYSIWYG-редактор что ли? я подобное делал для конвертации в bb-код, там с чилдами проще было намного.

Последний раз редактировалось Яростный Меч, 26.01.2014 в 22:26.
Ответить с цитированием
  #5 (permalink)  
Старый 27.01.2014, 05:56
Новичок на форуме
Отправить личное сообщение для SeaGull Посмотреть профиль Найти все сообщения от SeaGull
 
Регистрация: 26.01.2014
Сообщений: 9

Огромное спасибо.
Всё работает.

Задача там действительно очень сходна к конвертации смайликов в bb-коды.
Сделал по Вашему примеру, потом таки переделал с перебором child'ов.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить координаты области выделенного текста oleg.oreshenko Общие вопросы Javascript 0 06.12.2013 11:15
Вывод выделенного текста в форме другого окна Mrjoey Events/DOM/Window 10 22.06.2011 22:31
букмарклет для передачи в $.post выделенного фрагмента текста dimiork AJAX и COMET 2 30.03.2011 13:08
Обработка события выделения текста cabelas jQuery 0 26.11.2009 15:03
позиция выделенного текста в textarea, начало/конец `p r o x y jQuery 3 07.05.2009 09:08