Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Неоднозначность в смещении Range-объектов (https://javascript.ru/forum/events/18247-neodnoznachnost-v-smeshhenii-range-obektov.html)

trikadin 23.06.2011 07:32

Неоднозначность в смещении Range-объектов
 
<div id="root">text left<span id="bound"> text in span </span>text right</div>

<script>
rng= document.createRange(); // создаём Range
bound= document.getElementById("bound"); // спанчик)
root= document.getElementById("root"); // дивчик)

rng.setStart(root.firstChild, 2); // внутри текстовой ноды - смещение в символах
rng.setEnd(root, 1); // внутри ELEMENT_NODE - смещение в нодах

b= document.createElement("b");
rng.surroundContents(b);

alert(rng.startContainer.id+" "+rng.startOffset); // показано смещение в нодах внутри div.root
alert(rng.endContainer.id+" "+rng.endOffset); // то же самое и тут.
alert(rng.toString());
</script>


Теперь, собственно, вопрос. Есть возможность узнать, было ли смещение задано в текстовой ноде внутри контейнера либо же в самом контейнере?

trikadin 23.06.2011 14:07

Чёрт. Я уже все мануалы скурил...

trikadin 23.06.2011 19:18

Офигеть! Смещение в нодах шло из-за surroundContents! Т.е. если убрать surroundContents - то startContainer, endContainer и offset'ы будут в текстовых узлах.

Просто... Я думал я застрелюсь.

tenshi 27.06.2011 11:27

внезапно проблема оказалась в единственной непрокомментированной строчке х)


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