Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimanakah anda mengesan peristiwa klik kanan dan mengendalikan menu konteks dalam JavaScript?

Bagaimanakah anda mengesan peristiwa klik kanan dan mengendalikan menu konteks dalam JavaScript?

Susan Sarandon
Susan Sarandonasal
2024-11-10 01:05:02159semak imbas

How do you detect right-click events and handle context menus in JavaScript?

Pengendalian Acara Klik Kanan dalam JavaScript

Mengesan klik kanan dalam JavaScript ialah keperluan biasa untuk aplikasi web. Bertentangan dengan kepercayaan popular, klik kanan bukanlah acara JavaScript tertentu itu sendiri. Walau bagaimanapun, ia boleh dikesan melalui peristiwa tetikus standard seperti turun tetikus, tetikus ke atas dan klik.

Untuk menangkap peristiwa klik kanan, gunakan logik berikut:

document.body.onclick = function (e) {
  let isRightMB;
  e = e || window.event;

  // Determine if it is a right-click event
  if ("which" in e)  // Gecko (Firefox), WebKit (Safari/Chrome) & Opera
    isRightMB = e.which == 3; 
  else if ("button" in e)  // IE, Opera 
    isRightMB = e.button == 2; 

  if (isRightMB) {
    // Handle right-click actions
    console.log("Right mouse button clicked!");
  }
};

Di sisi lain tangan, jika matlamat anda adalah untuk mengesan apabila menu konteks klik kanan digunakan, acara yang sesuai ialah oncontextmenu.

window.oncontextmenu = function ()
{
  // Handle context menu actions
  showCustomMenu();
  return false;     // Cancel default context menu
};

Oleh menggunakan pengendali acara ini, anda boleh mengendalikan kedua-dua klik kanan berasaskan tetikus dan acara menu konteks dalam aplikasi JavaScript anda dengan berkesan.

Atas ialah kandungan terperinci Bagaimanakah anda mengesan peristiwa klik kanan dan mengendalikan menu konteks dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn