1
我使用的execCommand用JavaScript插入文字轉換成可編輯的I幀像這樣:如何在使用帶可編輯iframe的execCommand()時執行與退格鍵相同的操作?
element.execCommand("insertHTML",false,"some text");
任何人都知道如何處理文本,而不是第一個字符插入光標左邊?那麼在執行上述操作之前,按下退格鍵的效果是一樣的嗎?
我使用的execCommand用JavaScript插入文字轉換成可編輯的I幀像這樣:如何在使用帶可編輯iframe的execCommand()時執行與退格鍵相同的操作?
element.execCommand("insertHTML",false,"some text");
任何人都知道如何處理文本,而不是第一個字符插入光標左邊?那麼在執行上述操作之前,按下退格鍵的效果是一樣的嗎?
似乎沒有簡單的方法將按鍵發送到可編輯的iframe,因此您可能需要找到某種解決方法。最簡單的方法是從iframe獲取內容,操作它們,然後將它們放回iframe。
如: 選擇iframe中的所有文本與
var selection = element.execCommand("selectAll");
刪除最後一個字符 - 切片選擇
selection = selection.baseNode.data.slice(0, -1)
刪除所有內容
element.execCommand("Delete")
追加切片選擇+新文字
個element.execCommand("insertHTML",false,selection);
element.execCommand("insertHTML",false,"some text");
參考文獻:
附:我非常熟悉可編輯的iframe或選擇對象,因此如果您的文本中有任何特殊字符的html,它可能比這更復雜。你也可能需要爲不同的瀏覽器調整它。
嗨瓦倫蒂娜,謝謝你的回覆。由於我正在製作Chrome擴展程序,因此該解決方案需要僅在Chrome瀏覽器中運行,並且Chrome會在代碼的第二行發出錯誤信息......'無法讀取未定義的屬性'數據'...但我有找到(在搜索結果後),下面的技巧:'element.getSelection()。modify(「extend」,「backward」,「character」);' –