Saya ingin mengetahui cara agar skrip saya mendeteksi konten papan klip dan menempelkannya ke dalam bidang teks saat halaman dibuka, tanpa masukan dari pengguna. Bagaimana caranya?
Saya ingin mengetahui cara agar skrip saya mendeteksi konten papan klip dan menempelkannya ke dalam bidang teks saat halaman dibuka, tanpa masukan dari pengguna. Bagaimana caranya?
Jawaban:
window.clipboardData.getData('Text')
akan berfungsi di beberapa browser. Namun, banyak browser yang berfungsi akan meminta pengguna, apakah mereka ingin halaman web memiliki akses ke clipboard atau tidak.
Gunakan API papan klip baru , melalui navigator.clipboard
. Ini bisa digunakan seperti ini:
navigator.clipboard.readText()
.then(text => {
console.log('Pasted content: ', text);
})
.catch(err => {
console.error('Failed to read clipboard contents: ', err);
});
Atau dengan sintaks asinkron:
const text = await navigator.clipboard.readText();
Perlu diingat bahwa ini akan meminta pengguna dengan kotak dialog permintaan izin, jadi tidak ada bisnis lucu yang mungkin terjadi.
Kode di atas tidak akan berfungsi jika dipanggil dari konsol. Ini hanya berfungsi ketika Anda menjalankan kode di tab aktif. Untuk menjalankan kode dari konsol Anda, Anda dapat menyetel waktu tunggu dan mengklik di jendela situs web dengan cepat:
setTimeout(async () => {
const text = await navigator.clipboard.readText();
console.log(text);
}, 2000);
Baca lebih lanjut tentang API dan penggunaan di dokumen pengembang Google .
setTimeout
, lalu mengklik kembali halaman tersebut.
Kamu bisa memakai
window.clipboardData.getData('Text')
untuk mendapatkan konten papan klip pengguna di IE. Namun, di browser lain Anda mungkin perlu menggunakan flash untuk mendapatkan konten, karena tidak ada antarmuka standar untuk mengakses clipboard. Mungkin Anda sudah bisa mencoba plugin Zero Clipboard ini
Mengikuti akan memberi Anda konten yang dipilih serta memperbarui clipboard.
Ikat id elemen dengan event copy dan kemudian dapatkan teks yang dipilih. Anda dapat mengganti atau mengubah teks. Dapatkan clipboard dan atur teks baru. Untuk mendapatkan pemformatan yang tepat, Anda perlu menyetel jenisnya sebagai "teks / hmtl". Anda juga dapat mengikatnya ke dokumen alih-alih elemen.
document.querySelector('element').bind('copy', function(event) {
var selectedText = window.getSelection().toString();
selectedText = selectedText.replace(/\u200B/g, "");
clipboardData = event.clipboardData || window.clipboardData || event.originalEvent.clipboardData;
clipboardData.setData('text/html', selectedText);
event.preventDefault();
});