Я пытаюсь выяснить смещение выбора от конкретного узла с JavaScript.
Скажите, что у меня есть следующий HTML
<p>Hi there. This <strong>is blowing my mind</strong> with difficulty.</p>
Если я выбираю от выдувания до трудности, оно дает мне смещение от #text
узел в <strong>
. Мне нужно строковое смещение от <p>
innerHTML
и продолжительность выбора. В этом случае смещение было бы 26, и длина будет 40.
Моя первая мысль состояла в том, чтобы сделать, что-то со строковыми смещениями, и т.д. кроме Вас могло легко иметь что-то как
<p> Hi there. This <strong>is awesome</strong>. For real. It <strong>is awesome</strong>.</p>
который повредил бы тот метод, потому что существуют идентичные узлы. Мне также нужна опция вывести узлы. Скажите, что у меня есть что-то вроде этого
<p>Hi there. <a href="#" rel="inserted">This <strong>is blowing</a> my mind</strong> with difficulty.</p>
Я хочу вывести элементы с rel="inserted"
когда я делаю вычисление. Я все еще хочу 26 и 40 как результат.
Решение должно быть рекурсивным. Если был a <span>
с a <strong>
в нем он должен был бы все еще пересечь к <p>
.
Решение должно удалить длину любого элемента с rel="inserted"
. Содержание важно, но сами теги не. Все другие теги важны. Я сильно предпочел бы не удалять любые элементы из DOM, когда я делаю все это.
Я использую document.getSelection()
получить объект выбора. Это решение только должно работать в WebKit. jQuery является опцией, но я предпочел бы ему без него, если это возможно.
Любые идеи значительно ценились бы.
Я не имею никакого контроля над HTML я делающий все это на.