Mã phím Escape trong JavaScript

Với Escape, event.key là Escape, event.code là Escape, còn keyCode đã lỗi thời là 27. Nhấn bất kỳ phím nào trong Key Code Finder để xem giá trị của phím đó theo thời gian thực.

Cập nhật

Thuộc tínhGiá trị
event.keyEscape
event.codeEscape
event.keyCode / which (đã lỗi thời)27

Cách nhận biết phím Escape

document.addEventListener('keydown', (event) => {
  if (event.key === "Escape") {
    // Escape was pressed
  }
});

Dùng event.key khi bạn muốn phản ứng theo ý nghĩa của phím (giá trị này phụ thuộc vào bố cục bàn phím) và event.code khi cần dựa vào vị trí vật lý của phím, chẳng hạn WASD trong game. keyCode và which đã lỗi thời: chúng vẫn hoạt động, nhưng giá trị khác nhau giữa các trình duyệt và bố cục bàn phím.

Cách trình duyệt xử lý phím Escape

Escape là cách chuẩn để đóng hộp thoại, menu và popover. Phần tử <dialog> gốc tự đóng khi nhấn Escape và phát sinh sự kiện cancel. Trình duyệt cũng dùng Escape để thoát chế độ toàn màn hình, và lần nhấn này thường không được chuyển đến trang web.

Trong React

<input onKeyDown={(e) => { if (e.key === "Escape") { /* … */ } }} />

Câu hỏi thường gặp

keyCode của phím Escape là bao nhiêu?
27. Tuy nhiên, thuộc tính này đã lỗi thời: trong mã mới, hãy dùng event.key (“Escape”) hoặc event.code (Escape).
Sự khác nhau giữa event.key và event.code là gì?
event.key là ký tự hoặc hành động mà phím tạo ra theo bố cục hiện tại; event.code là vị trí vật lý của phím, giống nhau trên mọi bố cục bàn phím.
Nên dùng keydown hay keypress?
keydown. Sự kiện keypress đã lỗi thời và không kích hoạt với các phím không tạo ra ký tự, chẳng hạn Escape hoặc các phím mũi tên.