您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
播放时自动点击网页全屏、播放完成后自动退出全屏。
// ==UserScript== // @name B站_播放器自动化 // @name:zh-CN B站_播放器自动化 // @name:en-US BILI_Player Automation // @description 播放时自动点击网页全屏、播放完成后自动退出全屏。 // @version 1.0.8 // @author LiuliPack // @license WTFPL // @namespace https://gitlab.com/LiuliPack/UserScript // @include /www\.bilibili\.com\/(video|bangumi/play|festival)\/*/ // @run-at document-end // ==/UserScript== 'use strict'; // 定义元素快捷选择器($(元素定位符))、元素存在检测($$(元素定位符))和切换网页全屏(ToggleFull())函数 let $ = ele => document.querySelector(ele); function $$(ele) { return new Promise(resolve => { if ($(ele)) { return resolve($(ele)); } const observer = new MutationObserver(mutations => { if ($(ele)) { resolve($(ele)); observer.disconnect(); } }); observer.observe(document.body, { childList: true, subtree: true }); }); } function ToggleFull() { // 遍历数组、如果页面路径匹配,就点击对应元素;一起看页面无法获取播放器状态 [ ["^/video/(av\d+|BV1*)$", ".bpx-player-ctrl-web"], ["^/bangumi/play/*$", ".squirtle-video-pagefullscreen"], ["^/festival/*$", ".bpx-player-ctrl-web"], ].forEach(data => { (RegExp(data[0].regexp).test(location.pathname)) ? $$(data[1]).then(ele => { ele.click() }) : '' ; }) } // 等待元素存在,防止出版音像节目页面运行错误 $$('video').then(() => { // 监听视频播放 $('video').addEventListener("play", () => { // 如果非全屏 if(!/web|full/.test($('.bpx-player-container').getAttribute('data-screen'))) { // 点击网页全屏按钮 ToggleFull(); } }); // 监听视频暂停 $('video').addEventListener("pause", vid => { // 防止进度获取异常,再次定义视频参数 vid = $('video'); // 如果全屏状态且播放完成 if(/web|full/.test($('.bpx-player-container').getAttribute('data-screen')) && parseInt(vid.currentTime) === parseInt(vid.duration)) { // 点击网页全屏按钮 ToggleFull(); } }); });