#javascript #html #delphi #dom #xpcom
#javascript #HTML #delphi #dom #xpcom
Вопрос:
каков результат того, что эта инструкция использует xpcom
Sel:=ContentWindow.GetSelection;
Range:=Sel.GetRangeAt(0);
Range.StartContainer
getSelection предоставляет нам все выбранные элементы?
Ответ №1:
Выделение состоит из нескольких объектов диапазона, обычно 1. Каждый объект диапазона состоит из startContainer и startOffset, а также endContainer и endOffset. Если соответствующий контейнер является текстовым узлом, то смещение является смещением символа, но иногда контейнер является элементом, и в этом случае смещение является индексом дочернего узла. Так, например, учитывая HTML
<p>The <strong>strong</strong> tag usually results in <b>bold</b> text.</p>
Если начальным контейнером является текст «strong», а начальное смещение равно 3, в то время как конечным контейнером является текст «bold», а конечное смещение равно 2, то выделенный текст — «тег ong обычно приводит к bo«.
Сделав поправку на особые случаи (например, начальный и конечный контейнеры являются одним и тем же текстовым узлом), вы можете использовать такие методы, как TreeWalker, для посещения узлов в диапазоне.