Di Internet Explorer saya dapat menggunakan objek clipboardData untuk mengakses clipboard. Bagaimana saya bisa melakukannya di FireFox, Safari dan / atau Chrome?
javascript
dom
clipboard
GvS
sumber
sumber
copy
, developer.chrome.com/devtools/docs/commandline-apiJawaban:
Sekarang ada cara untuk melakukan ini dengan mudah di sebagian besar browser modern menggunakan
Ini akan menyalin teks yang saat ini dipilih. Anda dapat memilih textArea atau kolom input menggunakan
Untuk menyalin teks tanpa terlihat, Anda dapat membuat textArea dengan cepat, mengubah teks di kotak, memilihnya, menyalinnya, lalu menghapus textArea. Dalam kebanyakan kasus textArea ini bahkan tidak akan berkedip ke layar.
Untuk alasan keamanan, browser hanya akan mengizinkan Anda menyalin jika pengguna melakukan beberapa tindakan (mis. Mengklik tombol). Salah satu cara untuk melakukannya adalah dengan menambahkan acara onClick ke tombol html yang memanggil metode yang menyalin teks.
Contoh lengkapnya:
sumber
Untuk alasan keamanan, Firefox tidak mengizinkan Anda menempatkan teks di papan klip. Namun, ada solusi yang tersedia menggunakan Flash.
Satu-satunya kelemahan adalah ini membutuhkan Flash untuk diaktifkan.
sumber saat ini mati: http://bravo9.com/journal/copying-text-into-the-clipboard-with-javascript-in-firefox-safari-ie-opera-292559a2-cc6c-4ebf-9724-d23e8bc5ad8a/ ( dan begitu juga dengan cache Google )
sumber
Spreadsheets online mengaitkan acara Ctrl + C, Ctrl + V, dan mentransfer fokus ke kontrol TextArea tersembunyi dan mengatur kontennya ke konten papan klip baru yang diinginkan untuk disalin atau membaca kontennya setelah acara selesai untuk ditempel.
lihat juga Apakah mungkin membaca papan klip di Firefox, Safari, dan Chrome menggunakan Javascript?
sumber
Saat ini Musim Panas 2015, dan dengan begitu banyak kekacauan di sekitar Flash saya pikir saya akan menambahkan jawaban baru untuk pertanyaan ini yang menghindari penggunaannya sama sekali.
clipboard.js adalah utilitas bagus yang memungkinkan penyalinan teks atau data html ke clipboard. Sangat mudah digunakan, cukup sertakan .js dan gunakan sesuatu seperti ini:
clipboard.js juga ada di GitHub
sumber
Di 2017 Anda dapat melakukan ini (mengatakan ini karena utas ini hampir berusia 9 tahun!)
Dan sekarang untuk menyalin
copyStringToClipboard('Hello World')
Jika Anda memperhatikan
setData
garis tersebut, dan bertanya-tanya apakah Anda dapat mengatur tipe data yang berbeda, jawabannya adalah ya.sumber
.select()
di kotak input sebelum memanggil ini.Firefox mengizinkan Anda untuk menyimpan data di papan klip, tetapi karena implikasi keamanan, Firefox dinonaktifkan secara default. Lihat cara mengaktifkannya di "Memberikan akses JavaScript ke clipboard" di basis pengetahuan Mozilla Firefox.
Solusi yang ditawarkan oleh amdfan adalah yang terbaik jika Anda memiliki banyak pengguna dan mengkonfigurasi browser mereka bukanlah suatu pilihan. Meskipun Anda dapat menguji apakah papan klip tersedia dan menyediakan tautan untuk mengubah pengaturan, jika pengguna paham teknologi. Editor JavaScript TinyMCE mengikuti pendekatan ini.
sumber
Fungsi copyIntoClipboard () berfungsi untuk Flash 9, tetapi tampaknya rusak oleh rilis Flash player 10. Berikut solusi yang berfungsi dengan flash player baru:
http://bowser.macminicolo.net/~jhuckaby/zeroclipboard/
Ini solusi yang kompleks, tetapi berhasil.
sumber
Saya harus mengatakan bahwa tidak ada solusi ini yang benar - benar berfungsi. Saya telah mencoba solusi clipboard dari jawaban yang diterima, dan tidak berfungsi dengan Flash Player 10. Saya juga mencoba ZeroClipboard, dan saya sangat senang dengannya untuk sementara waktu.
Saat ini saya menggunakannya di situs saya sendiri ( http://www.blogtrog.com ), tetapi saya telah memperhatikan bug aneh dengannya. Cara kerja ZeroClipboard adalah menempatkan objek flash yang tidak terlihat di atas elemen pada halaman Anda. Saya telah menemukan bahwa jika elemen saya bergerak (seperti ketika pengguna mengubah ukuran jendela dan saya memiliki sesuatu yang benar), objek flash ZeroClipboard rusak dan tidak lagi menutupi objek. Saya curiga itu mungkin masih duduk di tempat asalnya. Mereka memiliki kode yang seharusnya menghentikannya, atau memasukkannya kembali ke elemen, tetapi tampaknya tidak berfungsi dengan baik.
Jadi ... dalam versi BlogTrog berikutnya, saya rasa saya akan mengikuti semua kode penyorot lain yang pernah saya lihat di alam liar dan menghapus tombol Salin ke Papan Klip. :-(
(Saya perhatikan bahwa Salinan ke Papan Klip dp.syntaxhiglighter juga rusak sekarang.)
sumber
pertanyaan yang terlalu lama tetapi saya tidak melihat jawaban ini di mana pun ...
Cek link ini:
http://kb.mozillazine.org/Granting_JavaScript_access_to_the_clipboard
seperti yang dikatakan semua orang, untuk alasan keamanan secara default dinonaktifkan. link di atas menunjukkan petunjuk cara mengaktifkannya (dengan mengedit about: config di firefox atau user.js).
Untungnya ada plugin bernama "AllowClipboardHelper" yang membuat segalanya lebih mudah hanya dengan beberapa klik. namun Anda masih perlu menginstruksikan pengunjung situs web Anda tentang cara mengaktifkan akses di firefox.
sumber
Gunakan document.execCommand modern ("copy") dan jQuery. Lihat jawaban stackoverflow ini
Cara Menelepon:
sumber
Saya telah menggunakan Github's Clippy untuk kebutuhan saya, tombol berbasis Flash sederhana. Bekerja dengan baik, jika seseorang tidak membutuhkan gaya dan senang dengan memasukkan apa yang akan ditempelkan di sisi server sebelumnya.
sumber
Sedikit perbaikan pada solusi Flash adalah mendeteksi flash 10 menggunakan swfobject:
http://code.google.com/p/swfobject/
dan kemudian jika ditampilkan sebagai flash 10, coba muat objek Shockwave menggunakan javascript. Shockwave dapat membaca / menulis ke clipboard (di semua versi) juga menggunakan perintah copyToClipboard () dalam bahasa.
sumber
http://www.rodsdot.com/ee/cross_browser_clipboard_copy_with_pop_over_message.asp bekerja dengan Flash 10 dan semua peramban yang mendukung Flash.
Juga ZeroClipboard telah diperbarui untuk menghindari bug yang disebutkan tentang pengguliran halaman yang menyebabkan film Flash tidak lagi berada di tempat yang benar.
Karena metode itu "Memerlukan" pengguna untuk mengklik tombol untuk menyalin, ini adalah kemudahan bagi pengguna dan tidak ada hal jahat yang terjadi.
sumber
coba buat variabel global memori yang menyimpan pilihan, kemudian fungsi lain dapat mengakses variabel dan melakukan paste misalnya ..
sumber
Jika Anda mendukung flash, Anda dapat menggunakan https://everyplay.com/assets/clipboard.swf dan menggunakan teks flashvars untuk mengatur teks
https://everyplay.com/assets/clipboard.swf?text=It%20Works
Itulah yang saya gunakan untuk menyalin dan Anda dapat menetapkan sebagai ekstra jika tidak mendukung opsi ini, Anda dapat menggunakan:
Untuk Internet Explorer: window.clipboardData.setData (DataFormat, Text) dan window.clipboardData.getData (DataFormat)
Anda dapat menggunakan Teks dan Url DataFormat untuk getData dan setData.
Dan untuk menghapus data:
Anda dapat menggunakan File DataFormat, HTML, Gambar, Teks dan URL. PS: Anda Perlu Menggunakan window.clipboardData.clearData (DataFormat);
Dan untuk yang tidak mendukung file windows.clipboardData dan swf flash Anda juga dapat menggunakan tombol control + c pada keyboard Anda untuk windows dan untuk mac perintahnya + c
sumber
Dari kode addon:
Jika ada orang lain yang mencari cara melakukannya dari kode chrome, Anda dapat menggunakan antarmuka nsIClipboardHelper seperti yang dijelaskan di sini: https://developer.mozilla.org/en-US/docs/Using_the_Clipboard
sumber
Gunakan
document.execCommand('copy')
. Didukung dalam versi terbaru dariChrome
,Firefox
,Edge
, danSafari
.sumber
Clipboard API dirancang untuk menggantikan
document.execCommand
. Safari masih mengerjakan dukungan, jadi Anda harus menyediakan fallback hingga spesifikasi diselesaikan dan Safari menyelesaikan implementasi.Untuk alasan keamanan, clipboard
Permissions
mungkin diperlukan untuk membaca dan menulis dari clipboard. Jika potongan tidak berfungsi pada SO, cobalahlocalhost
atau domain tepercaya lainnya.sumber
Membangun jawaban luar biasa dari @David dari Studio.201, ini berfungsi di Safari, FF, dan Chrome. Ini juga memastikan tidak ada flashing dapat terjadi dari
textarea
dengan menempatkannya di luar layar.sumber