SurroundContents sobre uma série abrangendo várias tags (problema getRangeAt?)
-
06-07-2019 - |
Pergunta
Eu tenho um script que (eu acho) precisa usar surroundContents para embrulhar a área de seleção. Fazer isso permite-me acrescentar algo, e então transferir o intervalo como a selecção.
Eu acredito que eu já reduzi o problema a um desvio de getRangeAt, mas não tenho certeza de como corrigi-lo.
Aqui está a breve trecho de código:
function getRangeObject(selectionObject) {
// Moz
if (selectionObject.getRangeAt) {
return selectionObject.getRangeAt(0);
}
E está aqui linha 89, onde ele lança um erro para mim:
rangeObject.surroundContents(newNode);
E, claro, aqui está o erro:
Erro: exceção não capturada: [Exception ... "O limite de pontos de uma gama não atende específica requisitos "de código: " 1" nsresult: "0x805c0001 (NS_ERROR_DOM_RANGE_BAD_BOUNDARYPOINTS_ERR)" localização: " http://www.latentmotion.com/insertNode/index26.html Linha: 89" ]
Se é útil ver a coisa toda, você pode ver o script (até agora) aqui: http://www.latentmotion.com/insertNode/index26.html
E o ajudante seleção de texto que eu estava saindo da era quirksmode - que não detalha o uso de vários intervalos localizado aqui .
Agradecemos antecipadamente a sua ajuda.
Solução
Eu acho que a mensagem de erro descreve bem o problema. Esta seção do DOM Faixa especificação descreve o que leva a uma exceção sendo lançada por um Range
ao usar surroundContents
.