fix youtube caption position through changing the margin of the caption's bottom.
目前為
// ==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.");
})();