Greasy Fork is available in English.

iThome Arrow Key Pager

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

目前为 2019-12-03 提交的版本。查看 最新版本

// ==UserScript==
// @name         iThome Arrow Key Pager
// @namespace    https://github.com/livinginpurple
// @version      2019.12.03.03
// @description  iThome Arrow Key Pager - Use ← (Go to Previous Page), → (Go to Next Page)
// @description:zh-TW   使用方向鍵前往上一頁(←)、下一頁(→)
// @license      WTFPL
// @author       livinginpurple
// @match        https://ithelp.ithome.com.tw/*
// @include 	 *
// @run-at       document-end
// @grant        none
// @grant        GM.xmlHttpRequest
// ==/UserScript==

(function() {
    'use strict';
    console.log(GM_info.script.name + " is loading.");
    const pagers = document.getElementsByClassName("article-series-page__content");
    let newerPager = pagers[0];
    let olderPager = pagers[1];
    
    if (document.getElementsByClassName("article-series-page__content")[0].textContent.includes("上一篇")) {
        olderPager = pagers[0];
    }
    if (document.getElementsByClassName("article-series-page__content")[1].textContent.includes("下一篇")) {
        newerPager = pagers[0];
    }

    document.addEventListener('keydown', (event) => {
        let keyName = event.key;
        //console.log('keydown event\n\n' + 'key: ' + keyName);
        if((newerPager === undefined || olderPager === undefined) 
        || (event.altKey && (keyName === "ArrowLeft" || keyName === "ArrowRight"))){
            return false;
        }
        if (keyName === "ArrowRight"){
            if (olderPager === null)
            {
                alert("Last Page!!");
                return false;
            }
            olderPager.click();
        }
        if (keyName === "ArrowLeft"){
            if (newerPager === null)
            {
                alert("First Page!!");
                return false;
            }
            newerPager.click();
        }
    });
    console.log(GM_info.script.name + " is running.");
})(document);