🏠 Home 

自动打开字幕

包括切换分P后也自动打开字幕,可自由切换是否只在有分P的视频生效。

// ==UserScript==
// @name         自动打开字幕
// @namespace    http://tampermonkey.net/
// @version      1.0.1
// @description  包括切换分P后也自动打开字幕,可自由切换是否只在有分P的视频生效。
// @author       aotmd
// @match        https://www.bilibili.com/video/*
// @noframes
// @license MIT
// @run-at document-body
// @grant        none
// ==/UserScript==
( function() {
let setting={
/*true或者false*/
只在有分P的视频生效:true
}
addLoadEvent( () => {
window.setTimeout( () => {
if(setting.只在有分P的视频生效&&!document.querySelector("#multi_page"))return;
var flag = setInterval( () => {
if ( !document.querySelector( "div.bpx-player-ctrl-btn.bpx-player-ctrl-subtitle > div.bpx-player-ctrl-btn-icon > span" ) ) return;
document.querySelector( "div.bpx-player-ctrl-btn.bpx-player-ctrl-subtitle > div.bpx-player-ctrl-btn-icon > span" ).click();
clearInterval( flag );
}, 1 );
var video = document.querySelector( "div.bpx-player-video-perch > div > video" );
video.addEventListener( 'loadedmetadata', function() {
setTimeout( () => {
document.querySelector( "div.bpx-player-ctrl-btn.bpx-player-ctrl-subtitle > div.bpx-player-ctrl-btn-icon > span" ).click();
}, 1000 )
} );
}, 1000 );
} );
// 等待网页完成加载
window.addEventListener( 'load', function() {
// 加载完成后执行的代码
}, false );
//仅第一次进入网页时加载代码.
const {
href
} = window.location;
const alreadyLoaded = JSON.parse( localStorage.loaded || '[]' );
if ( !alreadyLoaded.includes( href ) ) {
alreadyLoaded.push( href );
localStorage.loaded = JSON.stringify( alreadyLoaded );
window.addEventListener( 'load', () => {
// 加载完成后执行的代码
} );
}
addStyle( `` );
/**
* 添加浏览器执行事件
* @param func 无参匿名函数
*/
function addLoadEvent( func ) {
let oldOnload = window.onload;
if ( typeof window.onload != 'function' ) {
window.onload = func;
} else {
window.onload = function() {
try {
oldOnload();
} catch ( e ) {
console.log( e );
} finally {
func();
}
}
}
}
//添加css样式
function addStyle( rules ) {
let styleElement = document.createElement( 'style' );
styleElement[ "type" ] = 'text/css';
document.getElementsByTagName( 'head' )[ 0 ].appendChild( styleElement );
styleElement.appendChild( document.createTextNode( rules ) );
}
} )();