Saya ingin mendapatkan posisi teks yang dipilih menggunakan javascript. Sebagai contoh,
saya memiliki textarea sederhana.
#input-text {
resize: none;
width: 50%;
height: 50px;
margin: 1rem auto;
}
<textarea id="input-text">I am a student and I want to become a good person</textarea>
Di textarea saya, saya punya beberapa teks seperti:
"I am a student and I want to become a good person"
Dari string ini, jika saya memilih "menjadi orang yang baik" dari textarea,
Lalu Bagaimana saya bisa mendapatkan posisi teks / string yang dipilih dalam javascript?
Di sini karakter string yang dipilih dimulai dari 29 dan berakhir di 49. Jadi posisi awal adalah 29 & posisi akhir adalah 49
javascript
html
Md. Tahazzot
sumber
sumber
Jawaban:
Ini akan berfungsi untuk pemilihan teks dengan mouse dan keyboard untuk semua elemen textarea pada halaman. Pastikan untuk mengganti pemilih dan lebih spesifik di sana dan membaca komentar jika Anda tidak ingin / perlu pemilihan keyboard.
sumber
Saya akan menggunakan acara onselect untuk mendapatkan yang sama.
sumber
sumber
Jawaban Caramba bekerja sangat baik, namun saya memiliki masalah jika Anda memilih beberapa teks dan melepaskan mouse di luar textarea, acara tersebut tidak menyala.
Untuk mengatasi ini saya mengubah acara awal
mousedown
, acara ini mendaftarkanmouseup
acara pada dokumen untuk memastikan itu menyala setelah kursor dirilis. Itumouseup
Acara kemudian menghapus dirinya sendiri setelah itu telah dipecat.Ini dapat dicapai dengan menambahkan
once
opsiaddEventListener
, tetapi sayangnya tidak didukung di IE11 yang mengapa saya menggunakan solusi dalam cuplikan.sumber
addSelfDestructiveEventListener
!sumber