Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Meletakkan Karet Secara Pengaturcaraan dalam Elemen Boleh Suntingan Kandungan?

Bagaimanakah Saya Boleh Meletakkan Karet Secara Pengaturcaraan dalam Elemen Boleh Suntingan Kandungan?

DDD
DDDasal
2024-12-05 17:36:111030semak imbas

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

Meletakkan Karet pada Kedudukan Tertentu dalam Elemen Boleh Diedit Kandungan

Apabila berurusan dengan elemen boleh diedit kandungan, keupayaan untuk menetapkan kursor (karet) untuk kedudukan tertentu boleh menjadi penting. Walau bagaimanapun, untuk mencapai ini mungkin tidak mudah.

Dalam kebanyakan penyemak imbas web, menggunakan objek Julat dan Pemilihan adalah kuncinya. Dengan menentukan setiap sempadan pilihan sebagai nod dan offset dalam nod itu, anda boleh mengawal peletakan karet.

Untuk menggambarkan, pertimbangkan contoh HTML mudah dengan div boleh diedit kandungan:

<div>

Sekarang, bayangkan anda ingin meletakkan karet pada aksara kelima baris kedua teks. Untuk mencapai matlamat ini, ikuti langkah berikut:

  1. Buat Objek Julat:

    var range = document.createRange();
  2. Set Pemilihan Sempadan:

    var myDiv = document.getElementById("editable");
    range.setStart(myDiv.childNodes[2], 5);
    range.collapse(true);
    • myDiv.childNodes[2] merujuk kepada baris kedua teks.
    • range.setStart() menetapkan permulaan julat pemilihan kepada aksara kelima dalam nod itu.
    • julat.collapse(true) meruntuhkan julat kepada karet kedudukan.
  3. Tetapkan Pilihan:

    var sel = window.getSelection();
    sel.removeAllRanges();
    sel.addRange(range);
    • window.getSelection() mengembalikan objek Selection.
    • sel.removeAllRanges() mengalih keluar mana-mana yang sedia ada pemilihan.
    • sel.addRange(julat) menetapkan julat pilihan baharu.
  4. Cetuskan Fungsi:
    Lampirkan kod di atas kepada acara klik pada butang:

    document.getElementById("button").addEventListener("click", setCaret);

Dengan mengikuti langkah-langkah ini, anda kini boleh menetapkan kedudukan karet secara pemrograman dalam elemen yang boleh diedit kandungan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meletakkan Karet Secara Pengaturcaraan dalam Elemen Boleh Suntingan Kandungan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn