我正在使用 cloneRange() 函数克隆一个 DOM 范围。如果我然后像这样修改原始范围对象:
range.setStart(range.startContainer, 1);
克隆startOffset
按预期保留旧的。
但是,如果我修改 DOM 树,那么克隆的startOffset
也会受到影响。DOM 树和与其关联的所有范围(包括克隆)之间是否存在有意的内部连接?
我正在使用 cloneRange() 函数克隆一个 DOM 范围。如果我然后像这样修改原始范围对象:
range.setStart(range.startContainer, 1);
克隆startOffset
按预期保留旧的。
但是,如果我修改 DOM 树,那么克隆的startOffset
也会受到影响。DOM 树和与其关联的所有范围(包括克隆)之间是否存在有意的内部连接?
就在这里。在DOM Level 2 Range 规范中指定了 DOM 突变下的范围会发生什么。最新的DOM4 Range 规范在变异算法部分指定了这一点(感谢 RobG 指出这一点)。