2016-09-27 21 views
0

如何在選擇後插入節點而不觸發任何「selectionchange」事件。Range.insertNode()不觸發「selectionchange」

我得到了Selection.getRangeAt(0)的範圍。

Insert HTML after a selection這保留了選擇,但仍然觸發selectionchange事件。如果我刪除的最後一部分:

expandedSelRange.setEndAfter(lastNode); 
sel.removeAllRanges(); 
sel.addRange(expandedSelRange); 

然後鉻蜜餞,而不會觸發,但Firefox不

回答

0

我已經找到了解決辦法。

基本上,我在操縱一個Range對象。如果我可以分離一個然後我可以操縱它,但是我想要。所以我做了一個設計選擇,並通過分離的範圍作爲函數中的參數。

一些試驗和錯誤之後,我用這裏面的工作原理:

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

然後你就可以操作[R不影響DOM。