您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
打开网页时自动开始播放B站视频。
// ==UserScript== // @name B站自动播放视频 // @description 打开网页时自动开始播放B站视频。 // @version 1.01 // @author yzcjd // @author2 ChatGPT4辅助 // @namespace https://greasyfork.org/users/1171320 // @match https://www.bilibili.com/* // @match https://m.bilibili.com/* // @grant none // @run-at document-start // @license MIT // ==/UserScript== (function() { 'use strict'; let hasAutoPlayed = false; // 标记是否已自动播放 let userPaused = false; // 标记用户是否手动暂停 const tryPlayVideo = (video) => { if (!video) return; // 如果用户已手动暂停,就不再干预 if (userPaused) return; const playAttempt = () => { if (userPaused || hasAutoPlayed) return; video.play().then(() => { console.log('[B站自动播放] 播放成功'); hasAutoPlayed = true; }).catch((err) => { console.warn('[B站自动播放] 播放失败:', err); }); }; // 如果 metadata 已加载,立即播放;否则监听 loadedmetadata if (video.readyState >= 1) { playAttempt(); } else { video.addEventListener('loadedmetadata', playAttempt, { once: true }); } // 监听用户是否点击暂停(一次性绑定) video.addEventListener('pause', () => { if (!video.ended) { // 排除视频播放完毕的暂停 userPaused = true; console.log('[B站自动播放] 用户手动暂停,停止自动干预'); } }, { once: true }); }; const observer = new MutationObserver(() => { const video = document.querySelector('video[src^="blob:"]'); if (video && !hasAutoPlayed) { tryPlayVideo(video); } }); observer.observe(document.documentElement, { childList: true, subtree: true }); // 页面已加载,直接检查 video window.addEventListener('load', () => { const video = document.querySelector('video[src^="blob:"]'); if (video && !hasAutoPlayed) { tryPlayVideo(video); } }); })();