Вход

Просмотр полной версии : Неоднозначность в смещении Range-объектов


trikadin
23.06.2011, 07:32
<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
внезапно проблема оказалась в единственной непрокомментированной строчке х)