Menangkap satu tekan kekunci dalam JavaScript ialah tugas yang mudah, tetapi apabila ia datang untuk mengesan berbilang kombinasi kekunci, perkara boleh menjadi lebih rumit. Dalam siaran ini, kami akan meneroka pelaksanaan mudah yang menangkap kekunci "Perintah" dan gabungannya dengan "C" (untuk salinan) dan "V" (untuk tampal). Kami juga akan membincangkan cara melanjutkan fungsi ini untuk mengesan kombinasi kekunci yang lebih kompleks.
Berikut ialah coretan kod ringkas yang menunjukkan cara menangkap kekunci "Arahan" dan gabungannya:
const keyState = { cmd: false, }; // Add event listeners for keydown and keyup events window.addEventListener("keydown", handleKeyDown); window.addEventListener("keyup", handleKeyUp); // Function to handle keydown events function handleKeyDown(event) { if (event.key === "Meta") { keyState.cmd = true; } // Check for the Command and c combination if (keyState.cmd && event.key === "c") { console.log("user wants to copy"); } // Check for the Command and v combination if (keyState.cmd && event.key === "v") { console.log("user wants to paste"); } } // Function to handle keyup events function handleKeyUp(event) { if (event.key === "Meta") { keyState.cmd = false; } }
Walaupun pelaksanaan awal kami berfungsi dengan baik untuk mengesan hanya dua kombinasi, anda mungkin mahu mengembangkannya untuk memasukkan lebih banyak kunci atau kombinasi yang kompleks. Begini cara anda boleh melakukannya:
Anda boleh menambah lebih banyak kunci pada objek keyState anda. Contohnya, mari tambah sokongan untuk Shift dan Alt:
const keyState = { cmd: false, shift: false, alt: false, };
Ubah suai pengendali acara anda untuk menjejaki kunci tambahan ini:
function handleKeyDown(event) { if (event.key === "Meta") { keyState.cmd = true; } if (event.key === "Shift") { keyState.shift = true; } if (event.key === "Alt") { keyState.alt = true; } // Example of detecting Command + Shift + C if (keyState.cmd && keyState.shift && event.key === "c") { console.log("user wants to copy with Shift"); } // Example of detecting Command + Alt + V if (keyState.cmd && keyState.alt && event.key === "v") { console.log("user wants to paste with Alt"); } } function handleKeyUp(event) { if (event.key === "Meta") { keyState.cmd = false; } if (event.key === "Shift") { keyState.shift = false; } if (event.key === "Alt") { keyState.alt = false; } }
Kini anda boleh menguji pelbagai kombinasi seperti:
Arahan C untuk salinan
Perintah V untuk tampal
Anjakan Perintah C untuk tindakan berbeza
Arahkan Alt V untuk tindakan lain
Mengesan penekanan kekunci tunggal dalam JavaScript adalah mudah, tetapi apabila anda mula menggabungkan berbilang kekunci, ia memerlukan sedikit pemikiran dan pelaksanaan. Dengan mengekalkan objek keadaan untuk kunci anda, anda boleh menjejaki berbilang kombinasi dengan berkesan dan bertindak balas dengan sewajarnya.
Jangan ragu untuk mencuba kod di atas dan lanjutkan lagi! Apakah kombinasi lain yang anda ingin laksanakan? Kongsi pendapat anda dalam komen di bawah!
Atas ialah kandungan terperinci Mengesan Gabungan Utama Akhbar dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!