Blokir keyboard klik mouse teks & tautan dengan JS

Melarang penggunaan tombol keyboard dan menghentikan tindakan klik kanan dan kiri mouse, serta melarang pemilihan teks dan klik tautan dapat menjadi tindakan yang mengganggu pengguna. Biasanya, ini tidak dianjurkan karena dapat mengganggu pengalaman pengguna dan membatasi fungsionalitas situs web. Sebaiknya ini hanya digunakan dalam situasi khusus yang memang memerlukan pembatasan tersebut.

Namun, jika Anda ingin mencoba melarang beberapa interaksi tersebut dalam sebuah contoh, Anda bisa menggunakan skrip JavaScript berikut:

javascript

<script>
// Mencegah penggunaan tombol keyboard
document.addEventListener('keydown', function(event) {
    event.preventDefault();
});

// Mencegah tindakan klik kanan
document.addEventListener('contextmenu', function(event) {
    event.preventDefault();
});

// Mencegah tindakan klik kiri mouse
document.addEventListener('click', function(event) {
    event.preventDefault();
});

// Mencegah pemilihan teks
document.addEventListener('selectstart', function(event) {
    event.preventDefault();
});

// Mencegah klik pada tautan
document.addEventListener('click', function(event) {
    if (event.target.tagName === 'A') {
        event.preventDefault();
    }
});
</script>

Harap diperhatikan bahwa ini adalah skrip yang menghentikan banyak interaksi umum dan dapat mengganggu pengguna. Hal ini tidak disarankan untuk digunakan dalam konteks nyata kecuali jika Anda memiliki alasan khusus untuk melakukannya, seperti dalam aplikasi atau permainan tertentu. Sebaiknya, berusaha untuk menciptakan pengalaman pengguna yang lebih baik daripada membatasi kemampuannya.

---


Untuk memblokir tombol keyboard tertentu atau semua tombol keyboard, Anda dapat menggunakan kode JavaScript. Berikut adalah beberapa contoh kode yang dapat digunakan untuk memblokir tombol keyboard:


1. **Memblokir Tombol Tertentu:**

Anda juga dapat memblokir tombol keyboard tertentu dengan memeriksa kode tombol (key code) dalam event `keydown`. Contoh di bawah ini memblokir tombol "Enter" (dengan kode 13) dan tombol "Esc" (dengan kode 27):

 javascript

   document.addEventListener('keydown', function(event) {
       if (event.keyCode === 13 || event.keyCode === 27) {
           event.preventDefault();
       }
   });


2. **Memblokir Tombol dalam Rentang Kode Tombol Tertentu:**

Anda juga dapat memblokir tombol dalam rentang kode tombol tertentu. Contoh di bawah ini memblokir tombol keyboard dengan kode tombol antara 65 (A) dan 90 (Z), sehingga mencegah input huruf kapital:

  javascript

   document.addEventListener('keydown', function(event) {
       if (event.keyCode >= 65 && event.keyCode <= 90) {
           event.preventDefault();
       }
   });

---

Untuk memblokir kombinasi tombol seperti "Alt+Shift+I+J," Anda perlu memeriksa kode tombol dalam event `keydown` dan menentukan tindakan yang harus diambil jika kombinasi tersebut terdeteksi. Berikut adalah contoh JavaScript untuk memblokir kombinasi tombol tersebut:

javascript

document.addEventListener('keydown', function(event) {
    // Periksa apakah tombol Alt, Shift, I, dan J ditekan bersamaan
    if (event.altKey && event.shiftKey && event.key === 'I' && event.key === 'J') {
        event.preventDefault(); // Mencegah tindakan default yang biasanya terjadi
    }
});


Dalam contoh di atas, kita menggunakan `event.altKey` untuk memeriksa apakah tombol Alt ditekan, `event.shiftKey` untuk memeriksa apakah tombol Shift ditekan, dan `event.key` untuk memeriksa apakah tombol I dan J ditekan. Namun, ada masalah dalam kode di atas karena `event.key` tidak bisa memiliki dua nilai yang berbeda pada saat yang sama.

Untuk mengatasi ini, kita dapat menggunakan `event.code` untuk memeriksa kode tombol:

javascript

document.addEventListener('keydown', function(event) {
    // Periksa apakah tombol Alt, Shift, I, dan J ditekan bersamaan
    if (event.altKey && event.shiftKey && event.code === 'KeyI' && event.code === 'KeyJ') {
        event.preventDefault(); // Mencegah tindakan default yang biasanya terjadi
    }
});


Dalam kode di atas, kita menggunakan `event.code` untuk memeriksa kode tombol dan memastikan bahwa semua kondisi terpenuhi untuk kombinasi "Alt+Shift+I+J." Jika semua kondisi terpenuhi, maka kita memanggil `event.preventDefault()` untuk mencegah tindakan default yang biasanya terjadi ketika tombol-tombol tersebut ditekan.


---


Tombol keyboard dan mouse memiliki banyak kode unik yang mewakili setiap tombol secara individual. Berikut ini adalah daftar beberapa kode tombol umum untuk keyboard dan mouse:


**Kode Tombol Keyboard (Key Codes):**

Berikut adalah beberapa kode tombol umum untuk keyboard yang digunakan dalam event `keydown` dan `keyup`:

- Tombol Huruf: 65 - 90 (a - z)
- Tombol Angka: 48 - 57 (0 - 9)
- Tombol Fungsi: 112 - 123 (F1 - F12)
- Tombol Panah: 37 (Panah Kiri), 38 (Panah Atas), 39 (Panah Kanan), 40 (Panah Bawah)
- Tombol Spasi: 32 (Spasi)
- Tombol Enter: 13 (Enter)
- Tombol Esc: 27 (Esc)
- Tombol Tab: 9 (Tab)
- Tombol Backspace: 8 (Backspace)
- Tombol Delete: 46 (Delete)
- Tombol Shift: 16 (Shift)
- Tombol Ctrl: 17 (Ctrl)
- Tombol Alt: 18 (Alt)
- Tombol Caps Lock: 20 (Caps Lock)
- Tombol Windows: 91 (Windows Key atau Command Key di macOS)
- Tombol Alt Gr (Right Alt): 18 (Alt) - Untuk tombol Alt kanan pada beberapa keyboard
- Tombol Menu (Context Menu): 93 (Menu Key)


**Kode Tombol Mouse (Mouse Button Codes):**

Berikut adalah beberapa kode tombol mouse umum yang digunakan dalam event `mousedown` dan `mouseup`:

- Tombol Klik Kiri: 0 (Mouse Kiri)
- Tombol Klik Tengah: 1 (Mouse Tengah)
- Tombol Klik Kanan: 2 (Mouse Kanan)
- Tombol Scroll Mouse (Gulir): 3 (Mouse Scroll Up), 4 (Mouse Scroll Down)


Tombol-tombol lainnya di atas dapat digunakan untuk menentukan kode tombol khusus pada mouse tertentu atau perangkat input lainnya. Pada umumnya, Anda dapat memeriksa `event.keyCode` atau `event.which` dalam event handler JavaScript untuk mengetahui kode tombol yang sesuai dengan aksi pengguna.

Harap diperhatikan bahwa beberapa peramban dan sistem operasi mungkin memiliki perbedaan dalam pelaporan kode tombol, sehingga kode yang digunakan di atas dapat bervariasi sedikit pada lingkungan yang berbeda.