SurroundContents в диапазоне, охватывающем несколько тегов (проблема getRangeAt?)

StackOverflow https://stackoverflow.com/questions/1617180

Вопрос

У меня есть скрипт, который (я думаю) должен использоватьroundContents, чтобы обернуть область выбора. Это позволяет мне добавить что-то, а затем переназначить диапазон в качестве выделения.

Я считаю, что сузил проблему до неправильного использования getRangeAt, но я не совсем уверен, как ее исправить.

Вот краткий код:

        function getRangeObject(selectionObject) {
        // Moz
        if (selectionObject.getRangeAt) {
            return selectionObject.getRangeAt(0);
        }

А вот строка 89, в которой выдается ошибка:

rangeObject.surroundContents(newNode);

И, конечно же, вот ошибка:

  

Ошибка: необработанное исключение:   [Исключение ... »Граничные точки   диапазон не соответствует конкретным   . Требования & Quot; код: "1" nsresult:   & Quot; 0x805c0001   (NS_ERROR_DOM_RANGE_BAD_BOUNDARYPOINTS_ERR) & Quot;   место нахождения:   " http://www.latentmotion.com/insertNode/index26.html   Строка: 89 "]

Если полезно увидеть все это, вы можете посмотреть сценарий (пока) здесь: http://www.latentmotion.com/insertNode/index26.html

И помощник по выделению текста, из которого я уходил, был quirksmode - который не детализирует использование нескольких диапазонов, находится здесь .

Заранее благодарим за помощь.

Это было полезно?

Решение

Я думаю, что сообщение об ошибке хорошо описывает проблему. Этот раздел Спецификация диапазона DOM описывает, что приводит к исключению, генерируемому Range при использовании roundContents .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top