Apakah ada fungsi dalam javascript untuk membatalkan pilihan semua teks yang dipilih? Saya pikir itu harus menjadi fungsi global yang sederhana document.body.deselectAll();
atau semacamnya.
Apakah ada fungsi dalam javascript untuk membatalkan pilihan semua teks yang dipilih? Saya pikir itu harus menjadi fungsi global yang sederhana document.body.deselectAll();
atau semacamnya.
Jawaban:
Coba ini:
function clearSelection()
{
if (window.getSelection) {window.getSelection().removeAllRanges();}
else if (document.selection) {document.selection.empty();}
}
Ini akan menghapus pilihan dalam konten HTML biasa di browser utama mana pun. Ini tidak akan menghapus pilihan di input teks atau <textarea>
di Firefox.
removeAllRanges()
Metode bekerja di semua browser saat ini untuk teks di dalam paragraf atau elemen non-bentuk-bidang yang sama. Untuk bidang formulir (seperti area teks), metode ini tidak berfungsi di IE9 dan FF5.
window.getSelection().removeAllRanges();
dulu karena sesuai dengan standar, kode kepemilikan harus selalu dieksekusi terakhir . Baik itu tahun 2004 atau kode yang memenuhi standar 4004 pada akhirnya akan selalu menjadi apa yang kami gunakan jadi deteksi dulu tanpa kecuali!
Berikut adalah versi yang akan menghapus semua pilihan, termasuk dalam input teks dan area teks:
Demo: http://jsfiddle.net/SLQpM/23/
function clearSelection() {
var sel;
if ( (sel = document.selection) && sel.empty ) {
sel.empty();
} else {
if (window.getSelection) {
window.getSelection().removeAllRanges();
}
var activeEl = document.activeElement;
if (activeEl) {
var tagName = activeEl.nodeName.toLowerCase();
if ( tagName == "textarea" ||
(tagName == "input" && activeEl.type == "text") ) {
// Collapse the selection to the end
activeEl.selectionStart = activeEl.selectionEnd;
}
}
}
}
<div>
maka mouseup
acara tidak akan aktif. Letakkan penangan mouseup pada dokumen sebagai gantinya dan itu akan baik-baik saja: jsfiddle.net/SLQpM/23
Untuk Internet Explorer, Anda dapat menggunakan metode kosong dari objek document.selection:
document.selection.empty ();
Untuk solusi lintas-browser, lihat jawaban ini:
document.selection.clear()
berfungsi di IE. Lihat di sini: jsfiddle.net/9spL8/4 Selain itu, metode ini akan menghapus teks yang dipilih, bukan hanya membatalkannya. Untuk membatalkan pilihan teks, gunakan saja. document.selection.empty()
Untuk textarea
elemen dengan setidaknya 10 karakter, berikut ini akan membuat pilihan kecil dan kemudian setelah satu setengah detik batal pilih:
var t = document.getElementById('textarea_element');
t.focus();
t.selectionStart = 4;
t.selectionEnd = 8;
setTimeout(function()
{
t.selectionStart = 4;
t.selectionEnd = 4;
},1500);
Ini bekerja sangat mudah bagi saya ...
document.getSelection().collapseToEnd()
atau
document.getSelection().removeAllRanges()
Kredit: https://riptutorial.com/javascript/example/9410/deselect-everything-that-is-selected
window.getSelection().removeAllRanges();
berfungsi di semua browser saat ini. Demo langsung: jsfiddle.net/hWMJT/1