您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
增加学堂在线视频对快捷键的支持。
当前为
- // ==UserScript==
- // @name XuetangX Keyboard Shortcut
- // @namespace https://raineggplant.com/
- // @version 0.0.2
- // @description 增加学堂在线视频对快捷键的支持。
- // @author RainEggplant
- // @match *://next.xuetangx.com/*
- // @homepageURL https://github.com/RainEggplant/xuetangx-keyboard-shortcut
- // ==/UserScript==
- (function () {
- "use strict";
- const DEBUG = false;
- const videoSelector = "video";
- const wrapperSelector = "#qa-video-wrap";
- const timeStep = 10;
- const observer = new MutationObserver((mutation) => {
- const wrapper = document.querySelector(wrapperSelector);
- if (wrapper) {
- observer.disconnect();
- wrapper.setAttribute("tabindex", "-1");
- wrapper.addEventListener("keydown", keyboard_shortcut);
- }
- });
- // Start waiting for wrapper element
- observer.observe(document.body, {
- childList: true,
- subtree: true,
- attributes: false,
- characterData: false,
- });
- function keyboard_shortcut(e) {
- if (DEBUG) console.log(e.keyCode);
- const video = document.querySelector(videoSelector);
- let time;
- let volume;
- switch (e.keyCode) {
- case 32: // Space
- e.preventDefault();
- if (video.paused) video.play();
- else video.pause();
- break;
- case 37: // Arrow Left
- e.preventDefault();
- time = video.currentTime - timeStep;
- video.currentTime = time > 0 ? time : 0;
- break;
- case 39: // Arrow Right
- e.preventDefault();
- time = video.currentTime + timeStep;
- video.currentTime = time < video.duration ? time : video.duration;
- break;
- }
- }
- })();