Disable yuque website hotkeys

disable website hotkeys which is implemented by JavaScript `addEventListener` and `stopImmediatePropagation` API.

  1. // ==UserScript==
  2. // @name Disable yuque website hotkeys
  3. // @description disable website hotkeys which is implemented by JavaScript `addEventListener` and `stopImmediatePropagation` API.
  4. // @author yeshiqing
  5. // @license MIT
  6. // @run-at document-start
  7. // @include https://www.yuque.com/*
  8. // @grant none
  9. // @version 0.0.6
  10. // @namespace https://github.com/yeshiqing/disable-website-hotkeys/yuque.js
  11. // @icon https://upload-images.jianshu.io/upload_images/1231311-1d5a2ebbd33475e1.png
  12. // ==/UserScript==
  13.  
  14. // Disable these keys when no keyboard modifier is pressed
  15. let std_keycodes = new Set([
  16. // Add keycodes as desired
  17. // 37, 38, 39, 40 // Arrow Keys.
  18. ]);
  19.  
  20. // Disable these keys when Meta key is pressed.
  21. let meta_keycodes = new Set([
  22. // Add keycodes as desired
  23. 13 // Command + enter
  24. ]);
  25.  
  26. // Disable these keys when Alt key is pressed.
  27. let alt_keycodes = new Set([
  28. // Add keycodes as desired
  29. // 83 // Alt + S
  30. ]);
  31.  
  32.  
  33. let isMac = navigator.platform.indexOf('Mac') >= 0;
  34.  
  35. window.addEventListener('keydown', function (e) {
  36. let keycode_set;
  37. if (isMac ? e.metaKey : e.ctrlKey) {
  38. keycode_set = meta_keycodes;
  39. } else if (e.altKey) {
  40. keycode_set = alt_keycodes;
  41. } else {
  42. keycode_set = std_keycodes;
  43. }
  44.  
  45. if (keycode_set.has(e.keyCode)) {
  46. e.stopImmediatePropagation();
  47. }
  48. }, true);

QingJ © 2025

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