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

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

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

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

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

А вот строка 89, где он выдает ошибку:

rangeObject.surroundContents(newNode);

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

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

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

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

Заранее спасибо за помощь.

1 Ответ

1 голос
/ 24 октября 2009

Я думаю, что сообщение об ошибке хорошо описывает проблему. В этом разделе спецификации диапазона DOM описано, что приводит к исключению, выдаваемому Range при использовании surroundContents.

...