首頁 > web前端 > js教程 > 如何以程式設計方式將插入符定位在內容可編輯元素中?

如何以程式設計方式將插入符定位在內容可編輯元素中?

DDD
發布: 2024-12-05 17:36:11
原創
1030 人瀏覽過

How Can I Programmatically Position the Caret in a Contenteditable Element?

將插入符號放置在可內容編輯元素中的特定位置

處理可內容編輯元素時,能夠設定遊標(插入符號)到一個特定的位置可能是至關重要的。然而,要實現這一目標可能並不簡單。

在大多數 Web 瀏覽器中,利用 Range 和 Selection 物件是關鍵。透過將每個選擇邊界指定為節點以及該節點內的偏移量,您可以控制插入符號的位置。

為了說明這一點,請考慮一個帶有contenteditable div 的簡單HTML 範例:

<div>
登入後複製

現在,假設您要將插入符號放置在第二行文字的第五個字符處。為此,請依照下列步驟操作:

  1. 建立範圍物件:

    var range = document.createRange();
    登入後複製
  2. 設定評選邊界:

    var myDiv = document.getElementById("editable");
    range.setStart(myDiv.childNodes[2], 5);
    range.collapse(true);
    登入後複製
    • myDiv.childNodes[2]指第二行文本。
    • range.setStart() 將選取範圍的開始設定為該節點中的第五個字元。
    • range.collapse(true) 將範圍折疊為插入符號
  3. 設置選擇:

    var sel = window.getSelection();
    sel.removeAllRanges();
    sel.addRange(range);
    登入後複製
    • window.getSelection() 傳回Selection 物件。
    • sel.removeAllRanges() 刪除任何現有的選擇。
    • sel.addRange(range) 設定新的選擇範圍。
  4. 觸發函數:
    附加上面的程式碼為點擊事件按鈕:

    document.getElementById("button").addEventListener("click", setCaret);
    登入後複製

>透過執行以下步驟,現在可以以程式設計方式設定可內容編輯元素中的插入符號位置。

以上是如何以程式設計方式將插入符定位在內容可編輯元素中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板