Je fais un clone d'une gamme DOM en utilisant la fonction cloneRange (). Si je modifie l'objet de la gamme d'origine comme ceci:
range.setStart(range.startContainer, 1);
Le clone conserve l'ancien startOffset
comme prévu.
Cependant, si je modifie l'arborescence DOM, le startOffset
du clone sera également affecté. Existe-t-il un câblage interne intentionnel entre l'arbre DOM et toutes les plages qui lui sont associées (clones inclus)?
JS Fiddle Exemple
Oui il y a. Ce qui arrive aux gammes sous la mutation DOM est spécifié dans la spécification DOM Level 2 Range . La spécification DOM4 Range plus récente le spécifie dans la section des algorithmes de mutation (grâce à RobG pour le souligner).