您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
在B站按Enter键全屏/退出全屏,按1/2/3键控制播放倍速
// ==UserScript== // @name B站快捷键增强:Enter全屏 + 倍速播放 // @namespace https://dqtx.cc/ // @version 1.0 // @description 在B站按Enter键全屏/退出全屏,按1/2/3键控制播放倍速 // @author Derek // @match *://www.bilibili.com/video/* // @match *://www.bilibili.com/bangumi/play/* // @grant none // @license MIT // ==/UserScript== (function () { 'use strict'; // 等待视频元素加载完成 function waitForVideo() { const video = document.querySelector('video'); if (video) { init(video); } else { setTimeout(waitForVideo, 500); } } function init(video) { console.log('[B站快捷键增强] 已启动'); document.addEventListener('keydown', (e) => { // 忽略输入框(防止在评论区或搜索框触发) const tag = e.target.tagName.toLowerCase(); if (tag === 'input' || tag === 'textarea' || e.target.isContentEditable) return; // 按 Enter 键切换全屏 if (e.key === 'Enter') { e.preventDefault(); if (!document.fullscreenElement) { const player = document.querySelector('.bpx-player-video-wrap') || video; if (player.requestFullscreen) player.requestFullscreen(); } else { document.exitFullscreen(); } } // 按数字键控制播放速度 if (['1', '2', '3'].includes(e.key)) { e.preventDefault(); switch (e.key) { case '1': video.playbackRate = 1.0; showToast('倍速:1.0x'); break; case '2': video.playbackRate = 2.0; showToast('倍速:2.0x'); break; case '3': video.playbackRate = 3.0; showToast('倍速:3.0x'); break; } } }); // 简易提示气泡 function showToast(text) { let toast = document.createElement('div'); toast.innerText = text; Object.assign(toast.style, { position: 'fixed', bottom: '80px', left: '50%', transform: 'translateX(-50%)', background: 'rgba(0,0,0,0.7)', color: '#fff', padding: '8px 16px', borderRadius: '6px', fontSize: '14px', zIndex: 9999, transition: 'opacity 0.5s', opacity: 1 }); document.body.appendChild(toast); setTimeout(() => toast.style.opacity = 0, 1000); setTimeout(() => toast.remove(), 1500); } } waitForVideo(); })();