Mục tiêu ban đầu của tôi là lấy hình ảnh được dán từ khay nhớ tạm. Nhưng tôi đã gặp rắc rối khi nhận được sự kiện dán.Sự kiện dán JavaScript hoạt động tốt trong Chrome nhưng không phải Firefox
Trong JSFiddle, nơi tôi sao chép các vấn đề, HTML chỉ chứa một div:
<div style="width: 200px; height: 200px; background: grey" id="pasteTarget" > </div>
JavaScript đầu tiên liên kết với chức năng handlePaste của tôi() sự kiện dán.
window.onload = function() {
//adding paste event listener on the div
document.getElementById("pasteTarget").
addEventListener("paste", handlePaste);
};
Chức năng này được cho là được gọi khi người dùng nhấn Ctrl + V hoặc chọn "dán" trong trình đơn của trình duyệt.
function handlePaste(e) {
alert("I'm in handlePaste");
for (var i = 0 ; i < e.clipboardData.items.length ; i++) {
var item = e.clipboardData.items[i];
console.log("Item: " + item.type);
alert(item.type);
}
}
Quan trọng: chức năng đó truy cập e.clipboardData để nhận nội dung của khay nhớ tạm. Ví dụ: nếu bạn nhấn phím PrtScrn, sau đó nhấn Ctrl + V, bạn sẽ gửi hình ảnh màn hình in đến phương thức handlePaste. Cảnh báo cuối cùng hiển thị "hình ảnh/png" khi hoạt động tốt.
Chrome v37: JsFiddle hoạt động tốt. Firefox v32: phương thức handlePaste() không được gọi, cảnh báo đầu tiên không bật lên.
Mã jsFiddle: http://jsfiddle.net/demeylau/ke44bufm/1/
Tôi nghi ngờ rằng bạn có thể dán bất kỳ thứ gì vào phần tử không thể chỉnh sửa – ovi
@Ovi - nó có hoạt động trong Chrome do một loại lỗi trong Chrome không? –