您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automatically clicks the Skip Intro button on Crunchyroll.com when available and makes the video fullscreen
当前为
// ==UserScript== // @name Crunchyroll Auto Skip Intro, Fullscreen Video & Mouse Volume Control // @namespace https://gf.qytechs.cn/en/users/807108-jeremy-r // @version 3.6 // @description Automatically clicks the Skip Intro button on Crunchyroll.com when available and makes the video fullscreen // @author JRem // @require https://cdn.jsdelivr.net/gh/mlcheng/js-toast@ebd3c889a1abaad615712485ce864d92aab4c7c0/toast.min.js // @match https://*.crunchyroll.com/watch/* // @match https://static.crunchyroll.com/vilos-v2/web/vilos/player.html // @grant GM_addStyle // @license MIT // ==/UserScript== // Toast Vars /////////////////// // USER EDITABLE // /////////////////// const options = { settings: { duration: 3000, }, style: { main: { background: "black", color: "white", width: "auto", 'max-width': '10%', } } }; const volopts = { settings: { duration: 500, }, style: { main: { background: "black", color: "white", width: "auto", 'max-width': '10%', } } }; /////////////////// // END USER EDITS // //////////////////// // Mouse click vars var eventMatchers = { 'HTMLEvents': /^(?:load|unload|abort|error|select|change|submit|reset|focus|blur|resize|scroll)$/, 'MouseEvents': /^(?:click|dblclick|mouse(?:down|up|over|move|out))$/ }; var defaultOptions = { pointerX: 0, pointerY: 0, button: 0, ctrlKey: false, altKey: false, shiftKey: false, metaKey: false, bubbles: true, cancelable: true }; // Fullscreen Video Code /* window.onload = function(){ setTimeout(function () { var css = '.header-content { transition: transform 150ms; transform: translateY(-58px); }'; // Hidden header until hover css += '.erc-large-header { flex: 0 0 0; min-width: 20rem; position: relative; }'; // Hidden header until hover css += '.erc-header { position: fixed; top: 0; left: 0; height: 20px; width: 100%; z-index: 100; }'; // Hidden header until hover css += '.erc-header:hover .header-content { transform: translateY(0px); }'; // Hidden header until hover css += '.video-player-wrapper { display: flex; align-content: center; max-height: 95vh !important; height: 100vh; }'; // Full-width, height, and centered video player css += '.video-player-spacer { max-height: 100vh !important; height: 100vh; }'; // Allow the video player to take up the entirety of the viewport GM_addStyle(css); }, 5000); iqwerty.toast.toast('Fullscreen added', options); }; */ // Backup Fullscreen CSS Edit (Depending on page load will execute before the above) function cssedits(msg) { //var css = '.header-content { transition: transform 150ms; transform: translateY(-58px); }; .erc-large-header { flex: 0 0 0; min-width: 20rem; position: relative; }; .erc-header { position: fixed; top: 0; left: 0; height: 20px; width: 100%; z-index: 100; }; .erc-header:hover .header-content { transform: translateY(0px); }; .video-player-wrapper { display: flex; align-content: center; max-height: 95vh !important; height: 100vh; }; .video-player-spacer { max-height: 100vh !important; height: 100vh; };'; var css = '.header-content { transition: transform 150ms; transform: translateY(-58px); }'; // Hidden header until hover css += '.erc-large-header { flex: 0 0 0; min-width: 20rem; position: relative; }'; // Hidden header until hover css += '.erc-header { position: fixed; top: 0; left: 0; height: 20px; width: 100%; z-index: 100; }'; // Hidden header until hover css += '.erc-header:hover .header-content { transform: translateY(0px); }'; // Hidden header until hover css += '.video-player-wrapper { display: flex; align-content: center; max-height: 95vh !important; height: 100vh; }'; // Full-width, height, and centered video player css += '.video-player-spacer { max-height: 100vh !important; height: 100vh; }'; // Allow the video player to take up the entirety of the viewport GM_addStyle(css); iqwerty.toast.toast(msg, options); } document.addEventListener("DOMContentLoaded", cssedits('Page Loaded')); // Volume Control via mouse scroll // 1 Scroll = 5% function triggerKeypress(e){ e.preventDefault() const keyName = e.deltaY < 0 ? "ArrowUp" : "ArrowDown" const event = new KeyboardEvent("keydown", { key: keyName, bubbles: true, cancelable: true }); document.dispatchEvent(event) iqwerty.toast.toast(keyName, volopts); } document.addEventListener('keydown', function(e) { console.log(e.key + " pressed"); }); document.getElementById("vilos").addEventListener("wheel", triggerKeypress); // Functions for Mouse click emulation function simulate(element, eventName){ var options = extend(defaultOptions, arguments[2] || {}); var oEvent, eventType = null; for (var name in eventMatchers) { if (eventMatchers[name].test(eventName)) { eventType = name; break; } } if (!eventType) throw new SyntaxError('Only HTMLEvents and MouseEvents interfaces are supported'); if (document.createEvent) { oEvent = document.createEvent(eventType); if (eventType == 'HTMLEvents') { oEvent.initEvent(eventName, options.bubbles, options.cancelable); } else { oEvent.initMouseEvent(eventName, options.bubbles, options.cancelable, document.defaultView, options.button, options.pointerX, options.pointerY, options.pointerX, options.pointerY, options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, options.button, element); } element.dispatchEvent(oEvent); } else { options.clientX = options.pointerX; options.clientY = options.pointerY; var evt = document.createEventObject(); oEvent = extend(evt, options); element.fireEvent('on' + eventName, oEvent); } return element; }; function extend(destination, source) { for (var property in source) destination[property] = source[property]; return destination; }; // Check for and click Skip Intro setInterval(function () { if(document.querySelector('div[data-testid="skipIntroText"]') !== null) { simulate(document.querySelector('div[data-testid="skipIntroText"]'), "click"); console.log('Skip Btn Found'); iqwerty.toast.toast('Intro Skipped', options); } }, 1000)
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址