您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Provide useful keyboard shortcuts for bilibili, for now is speed and subtitle control, like Youtube does.
// ==UserScript== // @name You bilibili // @namespace http://tampermonkey.net/ // @homepage https://github.com/justforuse/chrome-extension-you-bilibili // @version 0.3 // @description Provide useful keyboard shortcuts for bilibili, for now is speed and subtitle control, like Youtube does. // @author Allen(https://github.com/justforuse) // @include http*://*bilibili.com/* // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @grant none // @license MIT // ==/UserScript== ;(function () { const videoContainer = document.querySelector('#playerWrap .bpx-player-container') let video let isReady = false function loadCSS() { const link = document.createElement('link') link.rel = 'stylesheet' link.type = 'text/css' link.href = 'https://cdn.jsdelivr.net/gh/justforuse/chrome-extension-you-bilibili/after.css' const head = document.querySelector('head') head.appendChild(link, null) } loadCSS() function showSpeedToast() { const toast = document.createElement('div') toast.classList.add('ybl-speed-toast') toast.innerText = video.playbackRate + 'x' videoContainer.appendChild(toast) setTimeout(() => { videoContainer.removeChild(toast) }, 500) } function addKeyboardListener() { video = document.querySelector('video') if (!video) { video = document.querySelector('bwp-video') } console.dir(video) video.addEventListener('playing', () => { if (isReady) { return } isReady = true console.log('%c You bilibili is ready! ', 'background: #2395ba;') const subtitleBtn = document.querySelector( '.bpx-player-ctrl-subtitle .bpx-common-svg-icon' ) const wideBtn = document.querySelector('.bpx-player-control-bottom .bpx-player-ctrl-wide') const webBtn = document.querySelector('.bpx-player-control-bottom .bpx-player-ctrl-web') console.log(subtitleBtn) document.addEventListener('keypress', (e) => { console.log(e) if (e.keyCode === 99) { // 'c' toggle caption subtitleBtn.click() } else if (e.keyCode === 62 && e.shiftKey) { // shift + > speed up video.playbackRate += 0.25 showSpeedToast() } else if (e.keyCode === 60 && e.shiftKey) { // shift + < speed down if (video.playbackRate < 0.5) { return } video.playbackRate -= 0.25 showSpeedToast() } else if (e.keyCode === 63 && e.shiftKey) { // shift + ? reset speeed video.playbackRate = 1 showSpeedToast() } else if (e.keyCode === 70 && e.shiftKey) { // shift + f: toggle player web mode webBtn.click() } else if (e.keyCode === 87 && e.shiftKey) { // shift + w: toggle player wide mode wideBtn.click() } }) }) clearInterval(_interval) } let _interval = setInterval(function () { if ( document.querySelector('.bili-comment') || document.querySelector('.bb-comment') ) { addKeyboardListener() } }, 100) })()