Greasy Fork is available in English.
操作视频进度条,将其移动到最后,用于绕过基于视频进度的限制。
当前为
// ==UserScript==
// @name 视频进度条拉到尾端
// @namespace none
// @version 1.1
// @description 操作视频进度条,将其移动到最后,用于绕过基于视频进度的限制。
// @author AMin
// @match *://*/*
// @grant none
// @license Proprietary
// @run-at document-end
// ==/UserScript==
(function () {
'use strict';
function manipulateProgressBar() {
const videoElement = document.querySelector("video");
if (videoElement) {
const currentPos = videoElement.currentTime;
videoElement.currentTime = videoElement.duration - 2;
setTimeout(() => {
videoElement.currentTime = currentPos;
}, 900);
}
}
function createButton() {
const triggerButton = document.createElement('button');
triggerButton.textContent = '视频置为最后';
Object.assign(triggerButton.style, {
position: 'absolute',
top: '10px',
left: '10px',
backgroundColor: '#444',
color: '#fff',
border: 'none',
padding: '8px 16px',
cursor: 'pointer',
opacity: '0.85',
zIndex: '10000'
});
triggerButton.addEventListener('click', manipulateProgressBar);
document.body.appendChild(triggerButton);
}
function checkForVideoAndCreateButton() {
if (document.querySelector("video")) {
createButton();
} else {
// Check periodically if the video element appears later
const observer = new MutationObserver((mutations) => {
for (let mutation of mutations) {
if (mutation.addedNodes.length) {
for (let node of mutation.addedNodes) {
if (node.tagName === 'VIDEO' || node.querySelector('video')) {
createButton();
observer.disconnect();
return;
}
}
}
}
});
observer.observe(document.body, {
childList: true,
subtree: true
});
}
}
checkForVideoAndCreateButton();
})();