Dưới đây là mã không chỉ vô hiệu hóa phím ESC mà còn kiểm tra tình trạng mà nó được nhấn và tùy thuộc vào tình huống, nó sẽ thực hiện hành động hay không.
Trong ví dụ này,
e.preventDefault();
sẽ vô hiệu hóa các hành động tác bấm phím ESC.
Bạn có thể làm bất cứ điều gì muốn giấu một div với điều này:
document.getElementById('myDivId').style.display = 'none';
Trường hợp phím ESC ép cũng được đưa vào xem xét:
(e.target.nodeName=='BODY')
Bạn có thể loại bỏ điều này nếu tình trạng một phần nếu bạn thích áp dụng điều này cho tất cả. Hoặc bạn có thể nhắm mục tiêu INPUT ở đây để chỉ áp dụng hành động này khi con trỏ đang ở trong hộp nhập liệu.
window.addEventListener('keydown', function(e){
if((e.key=='Escape'||e.key=='Esc'||e.keyCode==27) && (e.target.nodeName=='BODY')){
e.preventDefault();
return false;
}
}, true);
thực hiện một số phát hiện trình duyệt trước? – ina
Tôi thấy quirksmode.org luôn đáng tin cậy để tìm hiểu những gì hoạt động trong trình duyệt: http://www.quirksmode.org/js/keys.html. Ở đó bạn có thể thấy rằng chỉ 'keyup' hoặc' keydown' kết hợp với 'keyCode' hoạt động trong tất cả các trình duyệt. –
Tôi nghĩ rằng tiêu đề của câu hỏi này nên là "Làm thế nào để phát hiện phím bấm thoát với jquery?" Hoặc câu trả lời phải ở dạng javascript gốc ... – Wilt