簡體   English   中英

在修改innerHTML之后,在contentEditable上保存/恢復選擇

[英]Save / restore selection on contentEditable AFTER modifying innerHTML

我知道在contentEditable中獲取/設置光標位置幾乎是不可能的。 我不在乎了解這些信息。 我需要能夠保存當前選擇,修改div的innerHTML,然后恢復選擇。

我正在試驗在滿意的選定文本保存和恢復中提供的答案。 它在輸入div之后有效,但在編程修改div的innerHTML之后卻沒有。 相反,當我調用restoreSelection時,插入符號只是開始。

關於如何在修改innerHTML而不是鍵入之后如何在contentEditable上保存/恢復選擇的任何建議將非常感激。

如果您在可編輯元素的現有innerHTML上進行某種字符串替換,則可以使用我的Rangy庫及其保存/恢復選擇模塊。 它使用具有特定ID的不可見元素來標記選擇的開始和結束邊界,因此如果您的innerHTML更改不包含這些元素,那么這將不起作用。

另一種選擇是純粹基於元素的文本節點內的字符索引來完成它。 我在這里寫了一個天真的實現: https//stackoverflow.com/q/5596688/96100

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM