[JS] designMode 與 execCommand


最近小夥伴在研究框選 Highlight 的功能,一般都比較直覺地採用 window.getSelection() 和 regex、取代的方式來處理,但這在文本複雜的情況下,例如有多個 tag 包裹時,容易會有問題,或是程式碼難以維護 (想像各式各樣的正規表示式…)。

才疏學淺,直至此刻才認識到了 document.designModedocument.execCommand() 方法,實在是感到驚為天人~因為也沒有太深入研究,在此只做個紀錄和資源參考。

要玩看看可以參考這篇部落格文章:(HTML)用 contenteditable 與 designMode 創造自己的 HTML 編輯器 (作者:法奇)


土炮的 getSelection() Demo:

See the Pen highlight selection by Winter (@yichinweng) on CodePen.


使用 designMode 的版本 (Fork Arturo Campos ):

See the Pen Highlight color with execCommand by Winter (@yichinweng) on CodePen.


發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *