當前位置:編程學習大全網 - 編程軟體 - 請教前端達人,知乎的編輯器是怎樣實現這個功能的

請教前端達人,知乎的編輯器是怎樣實現這個功能的

在線富文本編輯器裏面,做以下操作:

選中壹串文字,點擊“ B ”把它加粗。

把遊標移到這串文字的中間,再點“ B ”。

輸入壹些文字。

在大部分其他的編輯器裏面,到第二步的時候,剛才加粗的所有文字都回復了正常狀態:

step1: some bold text

step2: some bold text

step3: some inserted text bold text

而知乎的編輯器的效果是這樣:

step1: some bold text

step2: some bold text

step3: some inserted text bold text

從 HTML 上面看,它是把壹個<b></b>節點拆成了三個節點:

<b>some</b>inserted text<b>bold text</b>.

問題是:在 contentEditable 上的編輯操作只能更新當前節點的文本內容,也就是說如果沒有 js 幹預,效果是這樣:

<b>some inserted text bold text</b>

知乎的編輯器是怎樣完成分拆動作的?

監聽 keypress 事件?那輸入中文怎樣實現?

監聽 change ?

  • 上一篇:沒有實際經驗可壹學習模具設計和編程嗎
  • 下一篇:易語言,如何實現控制多個遊戲窗口。
  • copyright 2024編程學習大全網