Disable website keyboard hooks

Stop websites from hijacking keyboard shortcuts.

当前为 2014-10-17 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Disable website keyboard hooks
  3. // @description Stop websites from hijacking keyboard shortcuts.
  4. // @author Isaac Levy
  5. // @run-at document-start
  6. // @include *
  7. // @grant none
  8. // @version 0.0.1
  9. // @namespace https://isaacrlevy.com
  10. // ==/UserScript==
  11.  
  12. var keycodes = [ // Add keycodes as desired, keep sorted.
  13. 37, 38, 39, 40 // Arrow keys.
  14. ]
  15.  
  16. var meta_keycodes = [ // Disable these when meta key is pressed.
  17. 70
  18. ];
  19.  
  20. // Don't change below this line.
  21.  
  22. var isMac = navigator.platform.toLowerCase().indexOf('mac') >= 0;
  23.  
  24. // Create a fast lookup.
  25. // This saves work during normal typing. Maybe unnecessary.
  26. var keycode_offset = keycodes[0];
  27. var keycode_arr = Array(keycodes[keycodes.length - 1] - keycode_offset)
  28. for (var i = 0, len = keycodes.length; i < len; i++) {
  29. keycode_arr[keycodes[i] - keycode_offset] = true;
  30. }
  31.  
  32. document.addEventListener('keydown', function(e) {
  33. //console.log(e);
  34. if ((isMac && e.metaKey) || (!isMac && e.ctrlKey)) {
  35. if (meta_keycodes.indexOf(e.keyCode) >= 0) {
  36. e.stopImmediatePropagation();
  37. }
  38. } else if (keycode_arr[e.keyCode - keycode_offset]) {
  39. e.stopImmediatePropagation();
  40. }
  41. return false;
  42. });

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址