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


Автор: izvrat 4.8.2006, 18:00
Не хочу получить текст, или хтмл код, хочу получить первый и последний выделеный дом хтмл элемент (у или списко /коллекцию этих елементов), как в файр фоксе, с объекта DOMRange, .. это можно? Как?

тока не надо советовать через TextRange::parentElement, плиз, проблему не решает, так как нетвозможности понять, какие элементы из дочерных выделены, а какие нет.

зы: DOM- forever!

Автор: JSman 4.8.2006, 19:04
пусть есть textRange. тогда (на память пишу, но логика такова) textRange.HTMLtext = "<span id=inline>" +textRange.HTMLtext+ "<\/span>"

а затем смотри по положению в дереве элемента inline

Автор: Sardar 5.8.2006, 23:19
izvrat, копай в стороны http://msdn.microsoft.com/workshop/author/dhtml/reference/collections/controlrange.asp

Автор: izvrat 9.8.2006, 16:47
JSman , практика покзывает, что все годраздо запущенее:

пусть есть кусок хтмл - 

" aaa <span> bbb </span> ccc <span> ddd </span> eee "

и вот мы мышкой выделяем отрезок - 

"bb </span> ccc <span> d"

что же мы видим в textRange ? - 

"<span>bb </span> ccc <span> d</span>"

круто?

Автор: Sardar 9.8.2006, 17:10
Цитата(izvrat @  9.8.2006,  15:47 Найти цитируемый пост)
круто? 

За то верно, именно так ты сможешь без лишних сложностей вставить отселектированный "текст" в другой элемент.

Автор: izvrat 10.8.2006, 17:26
Sardar , как раз оченьнеудобно... можно дологоворить то это ххорошо, еслиб не было действительнь хорошо зделано в ДОМ / ФайрФокс так и перый и последния выделеный текстовый узел получить и делать все что угодно... 

Короче работать невозмонно кромепростых вещей.. мне надо просто задать все выделеным елементам (тончее верхней вложености) определенный атрибут... вобщемтостандартная операция...

ДОстучатся к самим елементам я не могу... можно было отпаристь полученый хатмл, он он не же обрезаный получается.... т.е. кк я зименю "<span> bbb </span>", когад могу добратся толко до "<span>bb </span>" ?

Т.е как я могу найти недостающие символы " b" ???


Автор: Sardar 10.8.2006, 17:33
izvrat, тогда сюда: http://xpoint.ru/know-how/WYSIWYG/TrueJavaScriptEditor?67#PoluchaemNachal'nyiyIKonechnyi

Автор: 12345c 10.8.2006, 18:23
izvrat, всё ещё не решили? :) Сами же просили на parentElement решения не давать, вот я и не дал. Теперь смотрю - именно он нужен, судя по прояснившейся проблеме. Поиграйтесь с кодом:

Код
<div id=div1><span id=s1>12345 <span id=s3>bb</span> </span> ccc <span id=s2> ddd 67890</span></div>

<script>(d=document).onmouseup=function(){
tr=d.selection.createRange();
tr2=tr.duplicate();
tr.collapse();
tr2.collapse(!1);
alert([tr.parentElement().id,tr2.parentElement().id]);
}</script>

Автор: izvrat 11.8.2006, 10:36
Sardar - огромнеейшее спасибо, это именно то,что надо, а сам бы я очень долго до этоо копал бы... так как метод очень кривой, но единсвтенно возможный, автор видиме очень долго над эти ммучался...

12345c  - я имеел ввиду что сам этот объкт не является решением проблемы, как поверхностно можнет показаься... я не имеел виду что его не буду ни в коем случае использовать в решении
Спасибо за код надо покапатся над твоим примером, так как он проще, чем у Sardar (а там я даже копатся не стал) но вроде способ похожий.... короче спасчибо всем!

Автор: JSman 11.8.2006, 23:15
Цитата(izvrat @  9.8.2006,  16:47 Найти цитируемый пост)
круто?

на SPAN посмотрел, а на его ID нет. по ID как раз мы все и находим...

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