// ==UserScript== // @name Bilibili FullScreen Progressbar // @namespace http://tampermonkey.net/ // @version 0.1 // @description B站 活动标签页自动播放, 更大全屏按钮, 视频进度条等增强功能 // @author Finn // @match https://www.bilibili.com/video/* // @grant none // @license MIT // @downloadURL none // ==/UserScript== (function () { 'use strict'; var set = localStorage.getItem("bilibili_player_settings"); console.log("数据查看", set) const initStyle = ` `; document.documentElement.insertAdjacentHTML("afterbegin", initStyle); window.addEventListener("DOMContentLoaded", function () { //get Button const player = document.querySelector("#playerWrap"); let observer = new MutationObserver(function (mutations) { console.log("mutations", mutations); //let btn = player.querySelector(".bilibili-player-iconfont-fullscreen-off");//全屏按钮🔘 let btn = player.querySelector(".bilibili-player-iconfont-web-fullscreen-off");//网页全屏按钮🔘 const fullwrap = document.querySelector("#bilibiliPlayer"); const totalTime = document.querySelector(".bilibili-player-video-time-total"); console.log(totalTime); if (btn) { btn.setAttribute("id", "finnFor"); //btn.click();//原生click()事件只支持有默认点击行为的元素; observer.disconnect(); } //如果当前标签页active, 自动播放 /*let tabhidden = document.hidden; // if (!tabhidden) { let playarea = document.querySelector("#playerWrap video");//点击播放区域 // playarea.click();*/ setTimeout(function () { /* var e = document.createEvent("MouseEvents"); e.initEvent("click", true, true); playarea.dispatchEvent(e); */ //添加全屏按钮 const fullBtn = `` //fullBtn.addEventListener("click", function (e) { console.log("fullBtn click 点击"), e.stopPropagation() }) fullwrap.insertAdjacentHTML("afterbegin", fullBtn); //添加进度条 let progress = `
${totalTime.textContent}
`; fullwrap.insertAdjacentHTML("afterbegin", progress); //进度条 progressBar(); }, 500) }) let obConfig = { childList: true, subtree: true } observer.observe(player, obConfig); function progressBar() { let bar = document.querySelector("#finnProgress"); console.log(bar) let barStatus = setInterval(function () { if (!bar) { console.log("不存在进度条") } else { console.log("存在进度条"); //progress.onmouseenter=function(){} let p = +document.querySelector(".bilibili-player-drag-mask-progress-tempo").style.transform.replace(/[^.0-9]/ig, "");//获取当前进度值 bar.style.background = `conic-gradient(transparent ${p * 100}%,#ffffff47 0% )`; if (p == 1) { clearInterval(barStatus) }; } }, 500); } }) })();