處理contentEditable
<div> 時,預設瀏覽器功能會將遊標位置重設為文字的開頭復原焦點後。要解決此問題,請考慮以下解決方案:儲存和還原遊標位置:
此方法確保遊標位於最後一個已知位置當 div 重新獲得焦點時。
處理點擊:
要在按一下div 時恢復選擇,需要執行以下附加步驟:
工作代碼:
<div>
var savedRange, isInFocus; function saveSelection() { savedRange = window.getSelection ? window.getSelection().getRangeAt(0) : document.selection.createRange(); } function restoreSelection() { isInFocus = true; document.getElementById("area").focus(); if (savedRange) { if (window.getSelection) { var s = window.getSelection(); s.removeAllRanges(); s.addRange(savedRange); } else if (document.createRange) { window.getSelection().addRange(savedRange); } else if (document.selection) { savedRange.select(); } } } function onDivBlur() { isInFocus = false; } function cancelEvent(e) { if (isInFocus === false && savedRange) { if (e && e.preventDefault) { e.stopPropagation(); e.preventDefault(); } else { window.event.cancelBubble = true; } restoreSelection(); return false; } }
以上是如何在 ContentEditable Div 中設定和維護遊標位置?的詳細內容。更多資訊請關注PHP中文網其他相關文章!