[英]Using javascript to select text and the containing element using createRange
我正在滾動自己的通用所見即所得編輯器,但我堅持選擇一些文本。 我正在使用將contenteditable設置為true的div輸入文本。 問題是我正在使用<var>
標記突出顯示一些用戶應該以自己的文字刪除並重寫的文本。 單擊<var>
標記內的文本時,它會按我的預期突出顯示,但是當您按退格鍵時,只會刪除文本,而不是標記( <var>
)。 我怎樣才能告訴選擇項在選擇項的每一端再抓幾個字符,以便它也刪除<var>
標記? 我正在使用以下內容進行選擇。
var range = document.createRange();
range.selectNodeContents(elem);
var selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);
將函數放在div
的click
事件上。
選擇<var>
標簽。
使用.selectNode
而不是.selectNodeContents
。
瀏覽器對它的處理方式不同。 當您輸入更多文本時,有些會添加<i></i>
標記,有些則不會,但是會完全刪除<var>
標記。...
var myDiv = document.getElementById("myDiv"); var elem = document.getElementById("myVar"); myDiv.addEventListener("click", function() { var range = document.createRange(); range.selectNode(elem); var selection = window.getSelection(); selection.removeAllRanges(); selection.addRange(range); });
<div contenteditable="true" id="myDiv"> Hello, this<var id="myVar"> is a test</var> of the editor </div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.