zdf.js (1215B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 5 "use strict"; 6 7 class PictureInPictureVideoWrapper { 8 setCaptionContainerObserver(video, updateCaptionsFunction) { 9 let container = document.querySelector('div[class^="subtitle-container"]'); 10 11 if (container) { 12 updateCaptionsFunction(""); 13 const callback = function () { 14 let textNodeList = container.querySelectorAll("span"); 15 if (!textNodeList.length) { 16 updateCaptionsFunction(""); 17 return; 18 } 19 20 updateCaptionsFunction( 21 Array.from(textNodeList, x => x.textContent).join("\n") 22 ); 23 }; 24 25 // immediately invoke the callback function to add subtitles to the PiP window 26 callback(); 27 28 this.captionsObserver = new MutationObserver(callback); 29 30 this.captionsObserver.observe(container, { 31 childList: true, 32 subtree: true, 33 }); 34 } 35 } 36 37 removeCaptionContainerObserver() { 38 this.captionsObserver?.disconnect(); 39 } 40 } 41 42 this.PictureInPictureVideoWrapper = PictureInPictureVideoWrapper;