CSDN编辑器快捷键

自定义CSDN编辑器快捷键,使用快捷键在CSDN博客编辑页面中快速输入的自定义内容

  1. // ==UserScript==
  2. // @name CSDN编辑器快捷键
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1.7
  5. // @description 自定义CSDN编辑器快捷键,使用快捷键在CSDN博客编辑页面中快速输入的自定义内容
  6. // @author myaijarvis
  7. // @match https://editor.csdn.net/md/?*
  8. // @icon https://g.csdnimg.cn/static/logo/favicon32.ico
  9. // @grant unsafeWindow
  10. // ==/UserScript==
  11.  
  12. (function () {
  13. "use strict";
  14.  
  15. var kjj=function (event) {
  16. // console.log(event.ctrlKey, event.altKey);
  17. // console.log(event.keyCode);
  18. // console.log(getKeyCode("j"));
  19.  
  20. //判断是否按下快捷键ctrl + alt + j
  21. if (event.ctrlKey && event.altKey && event.keyCode == getKeyCode("j")) {
  22. //alert("ctrl + alt + j");
  23. insertHtmlAtCaret("```java\n\n```");
  24. } else if (
  25. event.ctrlKey &&
  26. event.altKey &&
  27. event.keyCode == getKeyCode("p")
  28. ) {
  29. //alert("ctrl + alt + p");
  30. insertHtmlAtCaret("```python\n\n```");
  31. } else if (
  32. event.ctrlKey &&
  33. event.altKey &&
  34. event.keyCode == getKeyCode("c")
  35. ) {
  36. //alert("ctrl + alt + c");
  37. insertHtmlAtCaret("```c\n\n```");
  38. }else if (
  39. event.ctrlKey &&
  40. event.altKey &&
  41. event.keyCode == getKeyCode("i")
  42. ) {
  43. //alert("ctrl + alt + i"); // 电脑截屏快捷键ctrl+alt+s
  44. insertHtmlAtCaret("```javascript\n\n```");// t没反应,不知道为啥,先换成i
  45. }else if (
  46. event.ctrlKey &&
  47. event.altKey &&
  48. event.keyCode == getKeyCode("q")
  49. ) {
  50. //alert("ctrl + alt + q");
  51. insertHtmlAtCaret("```sql\n\n```");
  52. }else if (
  53. event.ctrlKey &&
  54. event.altKey &&
  55. event.keyCode == getKeyCode("z")
  56. ) {
  57. //alert("ctrl + alt + z");
  58. insertHtmlAtCaret("```\n\n```");
  59. }
  60. };
  61.  
  62. // JS监听键盘快捷键【65到90:a到z(A到Z)】
  63. document.addEventListener("keydown",kjj );
  64. })();
  65.  
  66. /**
  67. * 返回字符串代表的keyCode(数值型)
  68. * @param {字符串} str
  69. * @returns
  70. */
  71. function getKeyCode(str) {
  72. return str.toUpperCase().charCodeAt();
  73. }
  74.  
  75. /**
  76. * 在光标处插入内容
  77. * @param {字符串} html
  78. */
  79. function insertHtmlAtCaret(html) {
  80. var sel, range;
  81. if (window.getSelection) {
  82. // IE9 and non-IE
  83. sel = window.getSelection();
  84. if (sel.getRangeAt && sel.rangeCount) {
  85. range = sel.getRangeAt(0);
  86. range.deleteContents();
  87. var el = document.createElement("div");
  88. el.innerHTML = html;
  89. var frag = document.createDocumentFragment(),
  90. node,
  91. lastNode;
  92. while ((node = el.firstChild)) {
  93. lastNode = frag.appendChild(node);
  94. }
  95. range.insertNode(frag);
  96. // Preserve the selection
  97. if (lastNode) {
  98. range = range.cloneRange();
  99. range.setStartAfter(lastNode);
  100. range.collapse(true);
  101. sel.removeAllRanges();
  102. sel.addRange(range);
  103. }
  104. }
  105. } else if (document.selection && document.selection.type != "Control") {
  106. // IE < 9
  107. document.selection.createRange().pasteHTML(html);
  108. }
  109. }
  110.  
  111.  
  112.  

QingJ © 2025

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