2009-10-24 3 views
3

У меня есть сценарий, который (я думаю) должен использовать surroundContents для обертывания области выделения. Это позволяет мне добавить что-то, а затем переназначить диапазон как выбор.SurroundContents в диапазоне, охватывающих несколько тегов (проблема getRangeAt?)

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

Вот краткий фрагмент кода:

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

А вот это линия 89, где он выдает ошибку на меня:

rangeObject.surroundContents(newNode); 

И, конечно, здесь ошибка:

Error: uncaught exception: [Exception... "The boundary-points of a range does not meet specific requirements." code: "1" nsresult: "0x805c0001 (NS_ERROR_DOM_RANGE_BAD_BOUNDARYPOINTS_ERR)" location: " http://www.latentmotion.com/insertNode/index26.html Line: 89"]

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

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

Заранее за вашу помощь.

+0

Вы можете помочь мне решить, как вы решили проблему? –

ответ

1

Я думаю, что сообщение об ошибке хорошо описывает проблему. This section of the DOM Range spec описывает, что приводит к исключению, которое генерируется Range при использовании surroundContents.

+0

Да, это может быть так. Я прочитал спецификацию, с которой вы связались, но я все еще не уверен, как исправить эту проблему. Есть ли способ очистки/полного выбора нетекстового узла, который вызывает ошибку? Возможно, я смог обнаружить частично выбранный узел и как-то закрыть его? – Matrym

+1

Это могло бы помочь, если бы вы сказали более точно, что вы пытаетесь сделать. Что вы хотите добавить и где? –

Смежные вопросы