Trong khi nóng lòng chờ đợi Xbrowser hỗ trợ API Clipboard ...
Điều này sẽ hoạt động tốt trên
Chrome, Firefox, Edge, IE
IE sẽ chỉ nhắc người dùng một lần truy cập Bảng tạm.
Safari (5.1 tại thời điểm viết bài) không hỗ trợ execCommand
chocopy/cut
/**
* CLIPBOARD
* https://stackoverflow.com/a/33337109/383904
*/
const clip = e => {
e.preventDefault();
const cont = e.target.innerHTML;
const area = document.createElement("textarea");
area.value = e.target.innerHTML; // or use .textContent
document.body.appendChild(area);
area.select();
if(document.execCommand('copy')) console.log("Copied to clipboard");
else prompt("Copy to clipboard:\nSelect, Cmd+C, Enter", cont); // Saf, Other
area.remove();
};
[...document.querySelectorAll(".clip")].forEach(el =>
el.addEventListener("click", clip)
);
<a class="clip" href="#!">Click an item to copy</a><br>
<a class="clip" href="#!"><i>Lorem</i></a><br>
<a class="clip" href="#!"><b>IPSUM</b></a><br>
<textarea placeholder="Paste here to test"></textarea>
Tất cả các trình duyệt (trừ Firefox có khả năng chỉ xử lý kịch câm gõ "plain/text"
như xa như tôi đã thử nghiệm) đã không được thực hiện các API Clipboard . Tức là, đang cố đọc sự kiện khay nhớ tạm trong Chrome bằng
var clipboardEvent = new ClipboardEvent("copy", {
dataType: "plain/text",
data: "Text to be sent to clipboard"
});
ném: Loại không có sẵn Lỗi: Hàm tạo bất hợp pháp
Bạn có thể xem tài nguyên tốt nhất về sự lộn xộn không thể tin được đang xảy ra giữa các trình duyệt và Clipboard tại đây (caniuse.com) (→ Theo dõi các nhận xét dưới "Ghi chú" ).
MDN nói rằng hỗ trợ cơ bản là "(CÓ)" cho tất cả các trình duyệt, điều này không chính xác vì người ta có thể mong đợi ít nhất là API hoạt động.