iThome Arrow Key Pager

iThome Arrow Key Pager - Use ← (Go to Previous Page), → (Go to Next Page)

  1. // ==UserScript==
  2. // @name iThome Arrow Key Pager
  3. // @namespace https://github.com/livinginpurple
  4. // @version 2019.12.03.12
  5. // @description iThome Arrow Key Pager - Use ← (Go to Previous Page), → (Go to Next Page)
  6. // @description:zh-TW 使用方向鍵前往上一頁(←)、下一頁(→)
  7. // @license WTFPL
  8. // @author livinginpurple
  9. // @match https://ithelp.ithome.com.tw/*
  10. // @run-at document-end
  11. // @grant none
  12. // @grant GM.xmlHttpRequest
  13. // ==/UserScript==
  14.  
  15. (function () {
  16. 'use strict';
  17. console.log(GM_info.script.name + " is loading.");
  18. const previousPage = document.getElementsByClassName("fa fa-fw fa-angle-left")[0];
  19. const nextPage = document.getElementsByClassName("fa fa-fw fa-angle-right")[0];
  20.  
  21. document.addEventListener('keydown', (event) => {
  22. let keyName = event.key;
  23. //console.log('keydown event\n\n' + 'key: ' + keyName);
  24. if ((event.altKey && (keyName === "ArrowLeft" || keyName === "ArrowRight"))) {
  25. return false;
  26. }
  27. if (keyName === "ArrowRight") {
  28. if (nextPage === undefined || nextPage === null) {
  29. alert("Last Page!!");
  30. return false;
  31. }
  32. nextPage.click();
  33. }
  34. if (keyName === "ArrowLeft") {
  35. if (previousPage === undefined || previousPage === null) {
  36. alert("First Page!!");
  37. return false;
  38. }
  39. previousPage.click();
  40. }
  41. });
  42. console.log(GM_info.script.name + " is running.");
  43. })(document);