Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.02.2011, 12:48
Интересующийся
Отправить личное сообщение для Frozen Coyote Посмотреть профиль Найти все сообщения от Frozen Coyote
 
Регистрация: 16.02.2011
Сообщений: 14

Opera, FireFox, Chrome - проблема с получение HTML выдеенно фрагмента
Добрый день,

сражаюсь с проблемой - никак не получается справиться - помогите кто может

Для начала прошу открыть ссылку - это мой wysiwyg, точнее его часть

Описание проблемы:

Открываем ИЕ. В нем открываем редактор, выделяем ссылочку (четко по ее границам), нажимаем ТЕСТ и в алерте получаем HTML всей ссылки. Это то что надо, великолепно.

Теперь открываем Хрому или Оперу - не суть. В ней открываем редактор, выделяем ссылочку (четко по ее границам), нажимаем ТЕСТ и в алерте получаем СОВСЕМ НЕ ТО ЧТО НУЖНО - только текст, без HTML. А вот если мы выделим ссылку + еще один (или больше) символов (неважно с какой стороны - слева, справа) - получаем то что нужно - в алерте отображается весь HTML ссылки

ПОЧЕМУ ТАК, друзья? Я уже голову свернул ((( Ниже код функции

function getMyHtmlSelection(iframe_id)
	{
		var iframe = document.getElementById(iframe_id);
		var idoc = iframe.contentDocument || iframe.contentWindow.document; // ie compatibility
		var txt = '';

		//MOZILLA
		if(idoc.getSelection)
		{
	        var select = iframe.contentWindow.getSelection();
	        var range = select.getRangeAt(0);
	        var tempel = document.createElement('div');
	        tempel.appendChild(range.cloneContents());
	        var txt = tempel.innerHTML;
		}
        //IE
		if(idoc.selection)
		{
	    	txt = idoc.selection.createRange().htmlText;
	    }

		alert(txt);
	}
Ответить с цитированием
  #2 (permalink)  
Старый 24.02.2011, 15:43
Новичок на форуме
Отправить личное сообщение для glober Посмотреть профиль Найти все сообщения от glober
 
Регистрация: 24.02.2011
Сообщений: 3

Привет!
Судя по вопросу до рабочего визивига еще далеко. А судя по отсутствию ответов понятно, что не многие так "глубоко копают" JavaScript.

Если перед получением выделенного фрагмента Вставить такой код:

range.selectNode(range.commonAncestorContainer.parentNode);


Тогда при выделении текста от начала до конца какого либо тега получим текст вместе с его контейнером т.е. обрамленный тегами.

Правда если выделить несколько узлов, получим их общего родителя, возможны варианты получить все вместе с тегом <body>, по этому нужно хорошо продумать алгоритм.

Если есть другие варианты буду рад увидеть.

Последний раз редактировалось glober, 24.02.2011 в 16:14.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
тег <audio> в Opera, Chrome, Firefox Magneto Javascript под браузер 12 25.11.2010 15:12