Saat ini, ada semakin banyak jenis browser, seperti IE, Firefox, Chrome, Safari, dll., Jadi tidak mudah untuk mengimplementasikan fungsi kecil menyalin konten ke clipboard dengan JS.
Di era Flash 9, ada solusi untuk membunuh semua konten salinan JS semua browser ke clipboard :
Solusi ini adalah salah satu metode yang paling populer: solusi salinan clipboard terkenal menggunakan clipboard.swf sebagai jembatan untuk menyalin konten ke clipboard.
Prinsipnya adalah: Buat file flash tersembunyi, dan pada saat yang sama tetapkan nilai "clipboard = .." ke flash flash flash. Melalui tugas ini, konten yang disalin akan ditempatkan di clipboard. Metode ini kompatibel dengan IE, Firefox, Opera, Chrome, dan Safari, dan benar -benar solusi "universal". Laju pemasangan flash browser sangat tinggi, yang hampir merupakan solusi sempurna.
Salinan kode adalah sebagai berikut:
<! Doctype html public "-// w3c // dtd xhtml 1.0 transisi // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml">
<head>
<title> pengembang web- www.admin10000.com </iteme>
<meta http-equiv = "konten tipe" content = "text /html; charset = utf-8" />
<type skrip = "Teks/JavaScript">
var clipboardswfdata;
var setcopy_getText = function () {
clipboardswfdata = document.getElementById ('test_text'). value;
// peringatan (clipboardswfdata);
window.document.clipboardswf.setVariable ('str', clipboardswfdata);
}
var floatwin = function () {
peringatan ('Salin dengan sukses!');
//document.getElementById('clipinner').style.display = 'none';
}
</script>
</head>
<body>
<textarea id = "test_text" baris = "15" cols = "100"> konten teks ..... </textarea>
<Div id = "clipboard_content">
<div> <span id = "clipinner"> Salin kode ke clipboard
<embed name="clipboardswf" id="clipboardswf" onmouseover="setcopy_gettext()" devicefont="false" src="./_clipboard.swf" menu="false" allowscriptaccess="sameDomain" swliveconnect="true" wmode="transparent" type="application/x-shockwave-flash">
</span>
</div>
</div>
</body>
</html>
Alamat unduhan clipboard.swf: http://www.jeffothy.com/weblog/uploads/clipboard.php
Tetapi di era Flash 10, metode di atas tidak lagi mungkin.
Karena Flash10 menetapkan bahwa hanya operasi nyata pada SWF (seperti klik mouse) yang dapat mengakses clipboard, sedangkan metode di atas hanya menggunakan file SWF tersembunyi dan mengoperasikan flash clipboard melalui JavaScript. Pengguna tidak melakukan operasi nyata pada file SWF, jadi metode ini tidak valid.
Jadi bagaimana cara menyelesaikan masalah "operasi nyata" ini? Anda dapat menggunakan Pustaka JavaScript: Zero Clipboard. Perpustakaan JS ini dapat mendukung flash 10 menyalin ke clipboard. Prinsip metode ini adalah menimpa elemen DOM seperti tombol atau div pada flash transparan (tidak terlihat oleh pengguna). Saat mengklik DOM ini, klik Flash yang sebenarnya adalah untuk mengakses flash clipboard.
Berikut adalah beberapa contoh debugging:
Salinan kode adalah sebagai berikut:
<! Doctype html public "-// w3c // dtd xhtml 1.0 transisi // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml">
<head>
<Title> Zero Clipboard Test </iteme>
<meta http-equiv = "konten tipe" content = "text /html; charset = utf-8" />
<script type = "text/javascript" src = "zeroclipboard.js"> </script>
<type skrip = "Teks/JavaScript">
var clip = null;
fungsi $ (id) {return document.getElementById (id); }
fungsi init () {
clip = new ZeroClipboard.client ();
clip.setHandCursor (true);
clip.addeventListener ('mouseover', function (klien) {
// Perbarui teks di mouse
clip.setText ($ ('fe_text'). value);
});
clip.addeventListener ('complete', function (klien, teks) {
// debugstr ("Teks yang disalin ke clipboard:" + teks);
Peringatan ("Alamat ini telah disalin, Anda dapat menempelkannya dengan Ctrl+V.");
});
clip.glue ('clip_button', 'clip_container');
}
</script>
</head>
<body onload = "init ()">
<input id = "fe_text" cols = "50" baris = "5" value = "Salin teks konten">
<span id = "clip_container"> <span id = "clip_button"> <strong> salin </strong> </span> </span>
</body>
</html>
Klik untuk mengunduh pustaka ini: //www.vevb.com/jiaoben/24961.html
Harap unggah ke situs web selama debugging. Jika Anda membuka Flash langsung secara lokal, akan ada kesalahan, dan tidak ada izin. Properti MoviePath di file ZeroClipboard.js adalah alamat Falsh, yang merupakan lokasi alamat di mana ZeroClipboard.swf disimpan di direktori.
Solusi ini untuk menyalin konten ke clipboard dapat mendukung browser: firefox/ie/opera/chorme/safari semua browser!