快捷键翻页

非输入状态下 , 和 . 快速翻到上一页和下一页

  1. // ==UserScript==
  2. // @name 快捷键翻页
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1.1
  5. // @description 非输入状态下 , 和 . 快速翻到上一页和下一页
  6. // @author You
  7. // @include *://*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. (function() {
  12. 'use strict';
  13.  
  14.  
  15. // 配置
  16. var __pageTurningOption = {
  17. prev: {
  18. keyCode:188,
  19. text:/^\s*(\<{0,2}|\←?|\《?)\s*(prev(ious)?\s*page|上一[页章节篇])\s*$/i
  20. },
  21. next: {
  22. keyCode:190,
  23. text:/^\s*(next\s*page|下一[页章节篇])\s*(\>{0,2}|\→?|\》?)\s*/i,
  24. // elem:'',
  25. // selector:'',
  26. }
  27. };
  28.  
  29.  
  30. // 优先读取页面设置, 其次读取默认设置
  31. setTimeout(function(){
  32. __pageTurningOption = window.__pageTurningOption || __pageTurningOption;
  33. }, 200);
  34.  
  35. // 按钮事件
  36. window.addEventListener('keydown', function(e) {
  37. var target = e.target;
  38. var nodeName = target.nodeName;
  39. if ( e.keyCode!==__pageTurningOption.prev.keyCode && e.keyCode!==__pageTurningOption.next.keyCode ) return;
  40. if ( nodeName==='INPUT' || nodeName==='TEXTAREA' || !!target.getAttribute('contenteditable') ) return;
  41. // 传入配置
  42. goPage( e.keyCode===__pageTurningOption.next.keyCode );
  43. });
  44.  
  45. // 翻页逻辑
  46. function goPage(wantGoingNextPage) {
  47. var option = wantGoingNextPage? __pageTurningOption.next: __pageTurningOption.prev;
  48. // 上/下页通用逻辑
  49. if ( option.selector ) {
  50. document.querySelector(option.selector).click()
  51. }
  52. else if ( option.text ) {
  53. var links = document.querySelectorAll(`${option.elem||'a'}`), link;
  54. for (var i=links.length-1; i!==0; i--) {
  55. link = links[i];
  56. if (!option.text.test(link.textContent)) continue;
  57. link.click();
  58. break;
  59. };
  60. }
  61. }
  62.  
  63.  
  64.  
  65. })();

QingJ © 2025

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