Greasy Fork is available in English.
自动关闭哔哩哔哩 HTML5 播放器弹幕
当前为
// ==UserScript==
// @name bilibili Danmaku Disabler
// @name:en-US bilibili Danmaku Disabler
// @name:zh-CN bilibili 弹幕关闭
// @description Auto disable bilibili HTML5 player danmaku
// @description:en-US Auto disable bilibili HTML5 player danmaku
// @description:zh-CN 自动关闭哔哩哔哩 HTML5 播放器弹幕
// @namespace bilibili-danmaku-disabler
// @version 2020.07.30.3
// @author Akatsuki
// @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 selectorNative = {
on: "input[class='bui-switch-input']:checked",
off: "input[class='bui-switch-input']:not(:checked)",
};
const selectorEmbed = {
on: "div[class~='bilibili-player-video-btn-danmaku'][data-text='打开弹幕']",
off: "div[class~='bilibili-player-video-btn-danmaku'][data-text='关闭弹幕']",
};
let selector = selectorNative;
if (document.location.hostname === "player.bilibili.com") {
selector = selectorEmbed;
}
// 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;
setInterval(() => {
let buttonOn = document.querySelector(selector.on);
if (buttonOn !== null && prevButtonOn !== buttonOn) {
disableDanmaku();
prevButtonOn = buttonOn;
}
}, 500);
}
detectPJAX();