B站笔记快捷键←↓→

在B站笔记中,打开笔记快捷键:Alt+↑,关闭笔记快捷键:Alt+↓,截图+时间戳快捷键:Ctrl+↓,时间戳+截图快捷键:Ctrl+↑,时间戳快捷键:Ctrl+←,截图快捷键:Ctrl+→,笔记窗口切换到视频窗口:Shift+←,视频窗口切换到笔记窗口:Shift+→

目前為 2022-11-23 提交的版本,檢視 最新版本

// ==UserScript==
// @name         B站笔记快捷键←↓→
// @namespace    indefined
// @version      2.3
// @description  在B站笔记中,打开笔记快捷键:Alt+↑,关闭笔记快捷键:Alt+↓,截图+时间戳快捷键:Ctrl+↓,时间戳+截图快捷键:Ctrl+↑,时间戳快捷键:Ctrl+←,截图快捷键:Ctrl+→,笔记窗口切换到视频窗口:Shift+←,视频窗口切换到笔记窗口:Shift+→
// @author       大王鹅鹅鹅
// @match        http*://www.bilibili.com/video/*
// @icon         https://static.hdslb.com/images/favicon.ico
// @grant        none
// @license      AGPL License
// ==/UserScript==

(function() {
    'use strict';
    // JS监听键盘快捷键事件
    document.addEventListener('keydown', function (event)
    {
        if (event.altKey && event.keyCode == 38) {//打开笔记——快捷键:Alt+↑
            document.querySelector('div.note-btn.note-btn__blue:nth-child(2)').click();
            document.querySelector('div.note-list-footer > div.note-list-btn').click();
            var count=2;
            var timeId=setInterval(function () {
                count--
                if(count<=0){
                    clearInterval(timeId)
                }
                initFocusDown();
            }, 600);
        };


        if (event.altKey && event.keyCode == 40) {//关闭笔记——快捷键:Alt+↓
             document.querySelector('i.bili-note-iconfont.iconiconfont_icon_close').click();

        };

        if (event.shiftKey && event.keyCode == 37) {//回到视频——快捷键:Shift+←
              var pNodel=document.querySelector('div.editor-innter.ql-container.ql-snow > div.ql-editor');
              pNodel.blur();

        };
         if (event.shiftKey && event.keyCode == 39) {//回到笔记——快捷键:Shift+→
              var el=document.querySelector('div.editor-innter.ql-container.ql-snow > div.ql-editor');
              var scrollHeight =el.scrollHeight;
              el.scrollTo(0,scrollHeight);
              el.focus();
              if (typeof window.getSelection != "undefined" && typeof document.createRange != "undefined") {
                  var range = document.createRange();
                  range.selectNodeContents(el);
                  range.collapse(false);
                  var sel = window.getSelection();
                  sel.removeAllRanges();
                  sel.addRange(range);
              } else if (typeof document.body.createTextRange != "undefined") {
                  var textRange = document.body.createTextRange();
                  textRange.moveToElementText(el);
                  textRange.collapse(false);
                  textRange.select();
        }

        };

        if (event.ctrlKey && event.keyCode == 37) {//时间戳——快捷键:Ctrl+←
             document.querySelector('i.bili-note-iconfont.iconicon_flag_L').click();
             setTimeout( function(){
              document.querySelector('div.dialog-btn.tag-dialog__btn--confirm:nth-child(2)').click();
             }, 5 * 100 );
        };

        if (event.ctrlKey && event.keyCode == 38) {//时间戳+截图——快捷键:Ctrl+↑
            new Promise((resolve,reject)=>{
                document.querySelector('i.bili-note-iconfont.iconicon_flag_L').click();
                return resolve();
            }).then(()=>{
                setTimeout( function(){
                    document.querySelector('div.dialog-btn.tag-dialog__btn--confirm:nth-child(2)').click();
                },500);
            });

            new Promise((resolve,reject)=>{
                 setTimeout( function(){
                    document.querySelector('i.bili-note-iconfont.iconcapture-app').click();
                },1000);
                return resolve();
            }).then(()=>{
                setTimeout( function(){
                 var parentNode=document.querySelector('div.editor-innter.ql-container.ql-snow > div.ql-editor');
                 var childN=parentNode.childNodes;
                 var scrollHeight =parentNode.scrollHeight;
                 parentNode.scrollTo(0,scrollHeight);
                 parentNode.focus();
                    for(var i=1;childN.length-1;i++){
                            if(childN[i].innerHTML=="<br>" && childN[i].previousSibling.innerHTML!="<br>" && childN[i].previousSibling.nodeName == "P" && childN[i].nextSibling.nodeName == "DIV"){
                                childN[i].remove();
                            }

                    }

              },1100);
            });
        };
        

        if (event.ctrlKey && event.keyCode == 39) {//截图——快捷键:Ctrl+→
            document.querySelector('i.bili-note-iconfont.iconcapture-app').click();
            setTimeout( function(){
                var parentNode=document.querySelector('div.editor-innter.ql-container.ql-snow > div.ql-editor');
                var scrollHeight =parentNode.scrollHeight;
                parentNode.scrollTo(0,scrollHeight);
                parentNode.focus();
            },500);
        };

        if (event.ctrlKey && event.keyCode == 40) {//截图+时间戳——快捷键:Ctrl+↓
            document.querySelector('i.bili-note-iconfont.iconcapture-app').click();
            new Promise((resolve,reject)=>{
                document.querySelector('i.bili-note-iconfont.iconicon_flag_L').click();
                return resolve();
            }).then(()=>{
                setTimeout( function(){
                    document.querySelector('div.dialog-btn.tag-dialog__btn--confirm:nth-child(2)').click();
                    var parentNode=document.querySelector('div.editor-innter.ql-container.ql-snow > div.ql-editor');
                    var childN=parentNode.childNodes;
                    for(var i=0;childN.length;i++){
                        if(childN[i].innerHTML=="<br>" && childN[i].nextSibling.innerHTML!="<br>" && childN[i].nextSibling.nodeName == "P" && childN[i].previousSibling.nodeName == "DIV"){
                           childN[i].remove();
                        }
                    }
                },1500);
            });
        };

    });

    function initFocusDown(){
        document.querySelector('div.note-btn.note-btn__blue:nth-child(2)').click();
        document.querySelector('div.note-list-footer > div.note-list-btn').click();
        var el=document.querySelector('div.editor-innter.ql-container.ql-snow > div.ql-editor');
        var scrollHeight = el.scrollHeight;
        el.scrollTo(0,scrollHeight);
        el.focus();
        if (typeof window.getSelection != "undefined" && typeof document.createRange != "undefined") {
            var range = document.createRange();
            range.selectNodeContents(el);
            range.collapse(false);
            var sel = window.getSelection();
            sel.removeAllRanges();
            sel.addRange(range);
        } else if (typeof document.body.createTextRange != "undefined") {
            var textRange = document.body.createTextRange();
            textRange.moveToElementText(el);
            textRange.collapse(false);
            textRange.select();
        }
    }

    function reTry(asyncFunc,times) {
        return new Promise(async (resolve, reject) => {
            function reTryFunc(times) {
                asyncFunc().then((res) => {
                     if (times > 0) {
                        console.log(`try${times}times`)
                        setTimeout(() => {
                            reTryFunc(times - 1)
                        })
                    } else {
                        reject()
                    }
                    resolve(res)
                }).catch((err) => {
                    if (times > 0) {
                        console.log(`try${times}times`)
                        setTimeout(() => {
                            reTryFunc(times - 1)
                        })
                    } else {
                        reject(err)
                    }
                })
            }
            reTryFunc(times)
        })
    }



})();