Range.insertNode()没有触发" selectionchange"

时间:2016-09-27 03:35:30

标签: javascript javascript-events range selection

如何在选择后插入节点而不触发任何" selectionchange"事件

我从Selection.getRangeAt(0)获得范围。

Insert HTML after a selection这会保留选择但仍会触发selectionchange事件。如果我删除最后一部分:

{{1}}

然后chrome保留而不触发但firefox没有

1 个答案:

答案 0 :(得分:0)

我找到了解决方法。

基本上,我正在操纵一个Range对象。如果我可以分离一个,那么我可以操纵它,但我想要。所以我做了一个设计选择,并将分离范围作为函数中的参数传递。

经过一些试验和错误后,我使用了这个:

var r = range.cloneRange(); r.detach();

然后你可以在不影响DOM的情况下操纵r。