TextUpdateEvent:selectionEnd 屬性
TextUpdateEvent.selectionEnd 只讀屬性指示可編輯區域中與 物件關聯的文字內容的選定範圍(或插入符)的結束位置。EditContext
值
一個 Number。
示例
使用 textupdate 渲染編輯後的文字和使用者選擇
此示例演示瞭如何在 textupdate 事件處理程式中使用 selectionEnd 屬性來渲染選定的文字。
css
#editor {
height: 200px;
background: #eeeeee;
color: black;
}
.selection {
display: inline-block;
vertical-align: bottom;
background: blue;
color: white;
min-width: 2px;
height: 3ex;
}
html
<div id="editor"></div>
js
const editorEl = document.getElementById("editor");
const editContext = new EditContext();
editorEl.editContext = editContext;
editContext.addEventListener("textupdate", (e) => {
// Clear the current content.
editorEl.textContent = "";
const text = editContext.text;
const { selectionStart, selectionEnd } = e;
// Render the text before the selection.
const textBefore = document.createElement("span");
textBefore.textContent = text.substring(0, selectionStart);
// Render the selected text, or caret.
const textSelected = document.createElement("span");
textSelected.classList.add("selection");
textSelected.textContent = text.substring(selectionStart, selectionEnd);
// Render the text after the selection.
const textAfter = document.createElement("span");
textAfter.textContent = text.substring(selectionEnd);
editorEl.appendChild(textBefore);
editorEl.appendChild(textSelected);
editorEl.appendChild(textAfter);
console.log(`Text before selection: ${textBefore.textContent}`);
console.log(`Selected text: ${textSelected.textContent}`);
console.log(`Text after selection: ${textAfter.textContent}`);
});
規範
| 規範 |
|---|
| EditContext API # dom-textupdateevent-selectionend |
瀏覽器相容性
載入中…