Tôi có một hộp đầu vào và tôi muốn sử dụng VBScript hoặc JavaScript [không có jQuery] để ghi lại sự kiện dán.
Ionică bizĂu
105K83 Huy hiệu vàng276 Huy hiệu bạc458 Huy hiệu Đồng83 gold badges276 silver badges458 bronze badges
Đã hỏi ngày 27 tháng 3 năm 2011 lúc 16:14Mar 27, 2011 at 16:14
1
Sử dụng sự kiện Onpaste để nắm bắt sự kiện và thực hiện những gì bạn cần trong JavaScript. Ví dụ. Để vô hiệu hóa dán trong trường văn bản đầu vào:
Đã trả lời ngày 27 tháng 3 năm 2011 lúc 16:20Mar 27, 2011 at 16:20
Philantphilantphilant
33,8K11 Huy hiệu vàng69 Huy hiệu bạc111 Huy hiệu đồng11 gold badges69 silver badges111 bronze badges
0
Đã trả lời ngày 27 tháng 3 năm 2011 lúc 16:23Mar 27, 2011 at 16:23
Jared Farrishjared FarrishJared Farrish
47.8K17 Huy hiệu vàng95 Huy hiệu bạc102 Huy hiệu đồng17 gold badges95 silver badges102 bronze badges
1
Chỉ dành cho độc giả trong tương lai tìm thấy điều này như tôi đã làm.
Bạn vẫn sẽ có thể thả văn bản vào một đầu vào với onpaste = "return false;" thuộc tính. Nếu bạn muốn tránh điều này, bạn có thể làm điều gì đó như thế này:
var input_element = document.getElementById["Element"];
input_element.addEventListener["drop", function [event] {
var types = event.dataTransfer.types;
if [types.length > 2 || types.indexOf["text/plain"] === -1]
event.preventDefault[];
else {
setTimeout[function [] { input_element.value = ""; }, 10];
}
}, false];
Đã trả lời ngày 26 tháng 7 năm 2018 lúc 12:45Jul 26, 2018 at 12:45
Sự kiện Nếu con trỏ nằm trong bối cảnh có thể chỉnh sửa [ví dụ, trong Một người xử lý cho sự kiện này có thể truy cập vào nội dung bảng tạm bằng cách gọi paste
được bắn khi người dùng đã bắt đầu hành động "dán" thông qua giao diện người dùng của trình duyệt.paste
event is fired when the user has initiated a "paste" action through the browser's user interface. hoặc phần tử có thuộc tính
contenteditable
được đặt thành true
] thì hành động mặc định là chèn nội dung của bảng tạm vào tài liệu ở vị trí con trỏ.
0 trên thuộc tính var input_element = document.getElementById["Element"];
input_element.addEventListener["drop", function [event] {
var types = event.dataTransfer.types;
if [types.length > 2 || types.indexOf["text/plain"] === -1]
event.preventDefault[];
else {
setTimeout[function [] { input_element.value = ""; }, 10];
}
}, false];
1 của sự kiện.var input_element = document.getElementById["Element"];
input_element.addEventListener["drop", function [event] {
var types = event.dataTransfer.types;
if [types.length > 2 || types.indexOf["text/plain"] === -1]
event.preventDefault[];
else {
setTimeout[function [] { input_element.value = ""; }, 10];
}
}, false];
Để ghi đè hành vi mặc định [ví dụ: để chèn một số dữ liệu khác nhau hoặc chuyển đổi nội dung bảng tạm], một trình xử lý sự kiện phải hủy hành động mặc định bằng cách sử dụng
var input_element = document.getElementById["Element"];
input_element.addEventListener["drop", function [event] {
var types = event.dataTransfer.types;
if [types.length > 2 || types.indexOf["text/plain"] === -1]
event.preventDefault[];
else {
setTimeout[function [] { input_element.value = ""; }, 10];
}
}, false];
2, sau đó chèn dữ liệu mong muốn của nó theo cách thủ công.Có thể xây dựng và gửi một sự kiện tổng hợp paste
, nhưng điều này sẽ không ảnh hưởng đến nội dung của tài liệu.
Cú pháp
Sử dụng tên sự kiện trong các phương thức như
var input_element = document.getElementById["Element"];
input_element.addEventListener["drop", function [event] {
var types = event.dataTransfer.types;
if [types.length > 2 || types.indexOf["text/plain"] === -1]
event.preventDefault[];
else {
setTimeout[function [] { input_element.value = ""; }, 10];
}
}, false];
4 hoặc đặt thuộc tính Trình xử lý sự kiện.addEventListener['paste', [event] => { }];
onpaste = [event] => { };
Loại sự kiện
Ví dụ
Ví dụ trực tiếp
HTML
Copy text from this box.
And paste it into this one.
div.source,
div.target {
border: 1px solid gray;
margin: 0.5rem;
padding: 0.5rem;
height: 1rem;
background-color: #e9eef1;
}
JavaScript
const target = document.querySelector['div.target'];
target.addEventListener['paste', [event] => {
event.preventDefault[];
let paste = [event.clipboardData || window.clipboardData].getData['text'];
paste = paste.toUpperCase[];
const selection = window.getSelection[];
if [!selection.rangeCount] return;
selection.deleteFromDocument[];
selection.getRangeAt[0].insertNode[document.createTextNode[paste]];
selection.collapseToEnd[];
}];
Kết quả
Thông số kỹ thuật
Api bảng clipboard và sự kiện # boardboard-event-paste # clipboard-event-paste |
HTML Standard # Handler-Onpaste # handler-onpaste |
Tính tương thích của trình duyệt web
Bảng BCD chỉ tải trong trình duyệt
Xem thêm
- Các sự kiện liên quan:
5,var input_element = document.getElementById["Element"]; input_element.addEventListener["drop", function [event] { var types = event.dataTransfer.types; if [types.length > 2 || types.indexOf["text/plain"] === -1] event.preventDefault[]; else { setTimeout[function [] { input_element.value = ""; }, 10]; } }, false];
6var input_element = document.getElementById["Element"]; input_element.addEventListener["drop", function [event] { var types = event.dataTransfer.types; if [types.length > 2 || types.indexOf["text/plain"] === -1] event.preventDefault[]; else { setTimeout[function [] { input_element.value = ""; }, 10]; } }, false];
- Sự kiện này trên
7 Mục tiêu:var input_element = document.getElementById["Element"]; input_element.addEventListener["drop", function [event] { var types = event.dataTransfer.types; if [types.length > 2 || types.indexOf["text/plain"] === -1] event.preventDefault[]; else { setTimeout[function [] { input_element.value = ""; }, 10]; } }, false];
paste
- Sự kiện này trên các mục tiêu
9:var input_element = document.getElementById["Element"]; input_element.addEventListener["drop", function [event] { var types = event.dataTransfer.types; if [types.length > 2 || types.indexOf["text/plain"] === -1] event.preventDefault[]; else { setTimeout[function [] { input_element.value = ""; }, 10]; } }, false];
paste