BiliBili 一键开关 弹幕 danmu

默认通过快捷键“/” 键来显示或隐藏弹幕。也可通过更改代码中的”danmu“ 变量值来修改快捷键。 <br> 默认初始关闭弹幕,可通过更改”defaultClosing“变量为0,来默认初始开启弹幕.

// ==UserScript==
// @name         BiliBili 一键开关 弹幕 danmu
// @namespace    http://tampermonkey.net/
// @version      v1.2
// @description  默认通过快捷键“/” 键来显示或隐藏弹幕。也可通过更改代码中的”danmu“ 变量值来修改快捷键。 <br> 默认初始关闭弹幕,可通过更改”defaultClosing“变量为0,来默认初始开启弹幕.
// @author       Ben
// @match        *://*.bilibili.com/*
// @grant        none
// @require https://cdn.staticfile.org/jquery/2.1.4/jquery.min.js
// @license MIT
// ==/UserScript==

// code reference : https://github.com/akiirui/userscript/blob/bilibili-danmaku-disabler/userscript.js

var danMu = 191; //"/",可以自己更改
var defaultClosing = 1;// 是否默认开启弹幕. 1:默认关闭,0:默认开启

const button = ".bui-danmaku-switch-input"; // ".bui-switch-input";
const danmuLabel = ".choose_danmaku";
const danmuHover = ".bilibili-player-video-danmaku-switch.bui.bui-switch"

$(document).ready(function() {
        //Close the danmu by default?
        function defaultClosing(){
            if($(danmuHover).length>0 && $(button).length>0 ){
                              clearInterval(id);
                              //$(danmuHover).dispatchEvent( new MouseEvent('mouseover', {'view': window, 'bubbles': true, 'cancelable': true }) );
                              $(danmuHover).mouseover(); // danmuLabel-class only appear after this excution.
                              //console.log('aa');
                              console.log($(danmuHover).attr("aria-label") + " ben");
                              console.log($(danmuLabel).text() + " ben");
                              if( $(danmuLabel).text() == "关闭弹幕" && defaultClosing){
                                // Run disabler
                                $(button).click();
                              }
            }
        }
        var id = setInterval(defaultClosing, 500);

        //在页面内跳转到其它视频
        $(document).on('click','.video-page-card',function(){
            id = setInterval(defaultClosing, 500);
		});

		$(document).keydown(function(event){//listener,调用键盘编码,按了键盘回调keydown里的function(event)函数,event就是你按的那个按键的code码
            switch(event.keyCode){
                case danMu:
                    $(button).click();
                break;
            }
		});
});