fix youtube caption position

fix youtube caption position through changing the margin of the caption's bottom.

目前为 2022-03-25 提交的版本。查看 最新版本

// ==UserScript==
// @name         fix youtube caption position
// @namespace    http://tampermonkey.net/
// @version      0.8
// @description  fix youtube caption position through changing the margin of the caption's bottom.
// @author       You
// @match        *://*.youtube.com/watch?*
// @grant        none
 // @license MIT
// ==/UserScript==
 
(function() {
    'use strict';
 
    // Your code here...
    const captionStyle="touch-action: none; text-align: left; overflow: hidden; left: 1.2%; width: 420px; height: 38px; margin-bottom:1px;";
const captionContainer = document.querySelector("#ytp-caption-window-container");
const configContainer = {childList: true};
const configCaptionStyle = {attributeFilter: ["style"]};
function nodeAdded(mutationList){
    for(const mutation of mutationList){
        //console.log(mutation);
        if(mutation.type==="childList"){
            if (mutation.addedNodes.length===1){
                //console.log("caption appear~");
                let caption = document.querySelector(".ytp-larger-tap-buttons .caption-window.ytp-caption-window-bottom");
                //console.log(caption.getAttribute('style'));
                caption.setAttribute('style', captionStyle);
                //console.log(caption.getAttribute('id'));
                //console.log("attribute after setted");
                //console.log(caption.getAttribute('style'));
                oberverCaptionStyle.observe(caption,configCaptionStyle);
            }
            if (mutation.removedNodes.length===1){
                oberverCaptionStyle.disconnect();
            }
        }
    }
}

function captionStyleChanged(mutationList){
    for (const mutation of mutationList){
        // console.log(mutation);
         let caption = document.querySelector(".ytp-larger-tap-buttons .caption-window.ytp-caption-window-bottom");
         console.log(caption.getAttribute('style'));
         caption.setAttribute('style', captionStyle);
         console.log(caption.getAttribute('id'));
         console.log("attribute after setted");
         console.log(caption.getAttribute('style'));        
    }
}

const observerNodeAdded = new MutationObserver(nodeAdded);
const oberverCaptionStyle = new MutationObserver(captionStyleChanged);
observerNodeAdded.observe(captionContainer, configContainer);
console.log("suc.");
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址