Greasy Fork is available in English.
自动关闭哔哩哔哩 HTML5 播放器弹幕
当前为
// ==UserScript==
// @name bilibili Danmaku Disabler
// @name:en-US bilibili Danmaku Disabler
// @name:zh-CN bilibili 弹幕关闭
// @name:zh-TW bilibili 彈幕關閉
// @description Auto disable bilibili HTML5 player danmaku
// @description:en-US Auto disable bilibili HTML5 player danmaku
// @description:zh-CN 自动关闭哔哩哔哩 HTML5 播放器弹幕
// @description:zh-TW 自動關閉嗶哩嗶哩 HTML5 播放器彈幕
// @namespace bilibili-danmaku-disabler
// @version 2020.11.13
// @author Akatsuki Rui
// @license MIT License
// @grant GM_info
// @run-at document-idle
// @match *://www.bilibili.com/*video/*
// @match *://www.bilibili.com/bangumi/play/*
// @match *://www.bilibili.com/blackboard/*
// @match *://player.bilibili.com/*
// ==/UserScript==
"use strict";
const SELECTOR_NATIVE = {
on:
"input[class='bui-switch-input']:checked[style='pointer-events: initial;']",
off: "input[class='bui-switch-input']:not(:checked)",
};
const SELECTOR_EMBED = {
on: "div[class~='bilibili-player-video-btn-danmaku'][data-text='打开弹幕']",
off: "div[class~='bilibili-player-video-btn-danmaku'][data-text='关闭弹幕']",
};
const SELECTOR =
document.location.hostname === "player.bilibili.com"
? SELECTOR_EMBED
: SELECTOR_NATIVE;
// Danmaku disabler
function disableDanmaku() {
let buttonOn = document.querySelector(SELECTOR.on);
if (buttonOn !== null) {
buttonOn.click();
}
setTimeout(() => {
if (document.querySelector(SELECTOR.off) === null) {
disableDanmaku();
}
}, 500);
}
// PJAX/pushState detector
function detectPJAX() {
let prevButtonOn = null;
setInterval(() => {
let buttonOn = document.querySelector(SELECTOR.on);
if (buttonOn !== null && prevButtonOn !== buttonOn) {
disableDanmaku();
prevButtonOn = buttonOn;
}
}, 500);
}
location.href.includes("/s/video/")
? window.location.replace(location.href.replace("/s/video/", "/video/"))
: detectPJAX();