VimKeys Navigation for WeebCentral

hjkl navigation within WeebCentral's reader. <Alt-c> to show reader's settings. <Alt-g> to show page select dialog.

当前为 2025-05-04 提交的版本,查看 最新版本

// ==UserScript==
// @name        VimKeys Navigation for WeebCentral
// @namespace   Violentmonkey Scripts
// @match       https://weebcentral.com/chapters/*
// @grant       none
// @version     0.1
// @author      Sadist
// @license     MIT
// @description hjkl navigation within WeebCentral's reader. <Alt-c> to show reader's settings. <Alt-g> to show page select dialog.
// ==/UserScript==
scrollLines = 35;
ratioExp = 2.6;

document.addEventListener("keydown", (event) => {
  if ((event.key === 'g') && (event.altKey) && (document.activeElement.tagName != "INPUT")) {
    // console.log("keydown", event);
    document.getElementById('nav-top').querySelector('div > button:nth-child(6)').click();
  }
});
document.addEventListener("keydown", (event) => {
  if ((event.key === 'l') && (document.activeElement.tagName != "INPUT")) {
    // console.log("keydown", event);
		document.getElementById('nav-top').querySelector('div > button:nth-child(8)').click();
  }
});
document.addEventListener("keydown", (event) => {
  if ((event.key === 'h') && (document.activeElement.tagName != "INPUT")) {
    // console.log("keydown", event);
		document.getElementById('nav-top').querySelector('div > button:nth-child(4)').click();
  }
});
document.addEventListener("keydown", (event) => {
  if ((event.key === 'j') && (document.activeElement.tagName != "INPUT")) {
    // console.log("keydown", event);
    scrollByLines(scrollLines * Math.pow(window.devicePixelRatio, ratioExp));
  }
});
document.addEventListener("keydown", (event) => {
  if ((event.key === 'k') && (document.activeElement.tagName != "INPUT")) {
    // console.log("keydown", event);
    scrollByLines(-scrollLines * Math.pow(window.devicePixelRatio, ratioExp));
  }
});
document.addEventListener("keydown", (event) => {
  if ((event.key === 'c') && (event.altKey) && (document.activeElement.tagName != "INPUT")) {
    // console.log("keydown", event);
    preference_modal.showModal()
  }
});