在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();
})();