JavaScript Seleksi Teks Otomatis
Membuat fitur seleksi teks otomatis pada elemen-elemen formulir seperti <textarea>
atau <input>
memang mudah, tetapi membuat fitur seleksi otomatis pada elemen-elemen non formulir seperti <div>
dan <pre>
membutuhkan sedikit langkah tambahan. Berikut ini adalah fungsinya:
function autoSelect(elem) {
var selection, range;
if (window.getSelection) {
selection = window.getSelection();
range = document.createRange();
range.selectNodeContents(elem);
selection.removeAllRanges();
selection.addRange(range);
} else if (document.selection) { // IE
selection = document.selection.createRange().text;
range = document.body.createTextRange();
range.moveToElementText(elem);
range.select();
}
}
Posting ini juga sekaligus akan Saya jadikan sebagai dokumentasi tambahan untuk memperbaharui posting Saya yang lama mengenai cara membuat fitur seleksi teks otomatis pada tag <pre>
di sini. Sejak rilis jQuery 1.9
, sepertinya jQuery.browser
sudah ditiadakan, jadi posting tersebut sudah tidak berlaku lagi.
Potongan kode di atas lebih baik, dan bisa diaktifkan oleh pengguna JavaScript mentah maupun pengguna JavaScript Library seperti jQuery.
Contoh Penggunaan
Parameter elem
akan kita gunakan sebagai referensi menuju elemen yang ingin kita seleksi. Misalnya, kita ingin menyeleksi semua teks di dalam elemen yang memiliki ID foo
:
autoSelect(document.getElementById('foo'));
Kode di atas merupakan contoh penerapan JavaScript mentah. Untuk menerapkannya pada jQuery, kita cukup mengganti pola selektornya saja:
autoSelect($('#foo')[0]);
Contoh Lain: Membuat Fitur Seleksi Otomatis pada Tag PRE
Versi JavaScript Mentah
var pre = document.getElementsByTagName('pre');
for (var i = 0, len = pre.length; i < len; i++) {
pre[i].onclick = function() {
autoSelect(this);
};
}
Versi jQuery
$('pre').on("click", function() {
autoSelect(this);
});
Gambar: Google
Labels: Blogger, JavaScript, jQuery, Potongan
13 Comments:
gile nih, script terus artikelnya... =p*
By Beben Koben, at Wednesday, January 23, 2013 at 7:10:00 PM GMT+7
Javascript yang sangat menarik..
apalagi untuk blog yang banyak kumpulan kodenya...
By Unknown, at Wednesday, January 23, 2013 at 8:25:00 PM GMT+7
lha kalo doble-click baru ke seleksi, javascriptnya gmn? =D
By Putra, at Thursday, January 24, 2013 at 10:20:00 AM GMT+7
pre[i].ondblclick = function() {
autoSelect(this);
};
$('pre').on("dblclick", function() {
autoSelect(this);
});
By Taufik Nurrohman, at Thursday, January 24, 2013 at 10:49:00 AM GMT+7
\o/
By Unknown, at Thursday, January 24, 2013 at 1:25:00 PM GMT+7
tutorial bagus teman.
By Anonymous, at Thursday, January 24, 2013 at 7:07:00 PM GMT+7
kalau ingin menerepkan tutorial diatas di element </blockquote>, gimana caranya??? :)
By Unknown, at Thursday, February 14, 2013 at 4:16:00 PM GMT+7
var bq = document.getElementsByTagName('blockquote');
for (var i = 0, len = bq.length; i < len; i++) {
bq[i].onclick = function() {
autoSelect(this);
};
}
atau
$(document).ready(function() {
$('blockquote').on("click", function() {
autoSelect(this);
});
});
By Taufik Nurrohman, at Saturday, February 16, 2013 at 7:00:00 AM GMT+7
code yang ini pilih salah satu ato sisipin dua duanya om?
By Larry bring, at Friday, July 19, 2013 at 6:14:00 PM GMT+7
mau ditaruh dmna itu om ?? maaf pemula..
By Unknown, at Saturday, October 19, 2013 at 5:38:00 PM GMT+7
tapi tetap saja pada area komentar tidak bekerja, ada penambahan seperti apa biar area komentar bekerja mas taufik??
function autoSelect(elem) {
var selection, range;
if (window.getSelection) {
selection = window.getSelection();
range = document.createRange();
range.selectNodeContents(elem);
selection.removeAllRanges();
selection.addRange(range);
} else if (document.selection) { // IE
selection = document.selection.createRange().text;
range = document.body.createTextRange();
range.moveToElementText(elem);
range.select();
}
}
// Eksekusi di sini
var pre = document.getElementsByTagName('pre');
for (var i = 0, len = pre.length; i < len; i++) {
pre[i].ondblclick = function() {
autoSelect(this);
};
}
By Admin, at Sunday, March 16, 2014 at 10:46:00 AM GMT+7
coba pindahkan posisi js nya berada diatas tag body.
By Kang Mousir, at Wednesday, March 19, 2014 at 11:58:00 AM GMT+7
Nah kalau untuk fungsi autoselect versi JQuerynya gimana min ? Saya pengen semua full JQuery hehehe.. atau mungkin bisa dibuatkan artikel tentang konversi javascript murni ke JQuery :D 0:)
By Anonymous, at Sunday, April 5, 2015 at 7:23:00 AM GMT+7
Post a Comment
<< Home