您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Select video provider option automatically and change the background color of the page to improve visibility and reduce eye strain
- // ==UserScript==
- // @name Serieslan Enhancements
- // @namespace http://tampermonkey.net/
- // @version 0.1
- // @description Select video provider option automatically and change the background color of the page to improve visibility and reduce eye strain
- // @author JJJ
- // @match https://serieslan.com/*
- // @icon https://www.google.com/s2/favicons?sz=64&domain=serieslan.com
- // @grant none
- // @license MIT
- // ==/UserScript==
- (function () {
- 'use strict';
- // Constants
- const CLASS_SELECTOR = 'div.sels > button.selop';
- const STORAGE_KEY = 'selectedOption';
- // CSS styles for the custom menu and page background
- const menuStyles = `
- /* Set background color to #2F353A for all elements */
- body,div, li, ul, header, footer {
- background-color: #2F353A !important;
- }
- /* Set text color to white for all text elements */
- body, p, h1, h2, h3, h4, h5, h6, span, a, li, div:not(#customMenu div), button:not(#customMenu button) {
- color: white !important;
- }
- /* Additional styles to improve visibility on links, if needed */
- a:not(#customMenu a) {
- text-decoration: underline !important;
- }
- #customMenu {
- position: fixed;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- background-color: rgba(255, 255, 255, 0.95) !important; /* Ensure background color is not overridden */
- border: 2px solid #000;
- padding: 15px;
- z-index: 9999;
- box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
- border-radius: 8px;
- font-family: Arial, sans-serif;
- width: 300px;
- text-align: center;
- color: black !important; /* Ensure text color is not overridden */
- }
- #customMenu select {
- width: 100% !important;
- padding: 10px !important;
- margin-bottom: 10px !important;
- border: 1px solid #ccc !important;
- border-radius: 4px !important;
- background-color: #FFFFFF !important; /* Ensure background color is white */
- color: black !important; /* Ensure text color is not overridden */
- -webkit-appearance: none !important; /* Disable default styling */
- -moz-appearance: none !important; /* Disable default styling */
- appearance: none !important; /* Disable default styling */
- }
- #customMenu button {
- padding: 10px 20px;
- border: none;
- background-color: #007bff !important; /* Ensure background color is not overridden */
- color: white !important; /* Ensure text color is not overridden */
- font-size: 14px;
- cursor: pointer;
- border-radius: 4px;
- }
- #customMenu button:hover {
- background-color: #0056b3 !important; /* Ensure hover background color is not overridden */
- }
- `;
- // Function to create the dropdown menu
- function createDropdownMenu(options) {
- const dropdownMenu = document.createElement('select');
- dropdownMenu.id = 'optionDropdown';
- options.forEach((option) => {
- const dropdownOption = document.createElement('option');
- dropdownOption.value = option.getAttribute('title') || option.textContent.trim();
- dropdownOption.textContent = option.getAttribute('title') || option.textContent.trim();
- dropdownMenu.appendChild(dropdownOption);
- });
- return dropdownMenu;
- }
- // Function to toggle the menu visibility
- function toggleMenu() {
- const menu = document.getElementById('customMenu');
- if (menu) {
- menu.style.display = menu.style.display === 'none' ? 'block' : 'none';
- console.log('Menu toggled, new display:', menu.style.display);
- } else {
- console.log('Menu element not found.');
- }
- }
- // Function to handle option selection
- function handleOptionSelection() {
- const selectedOptionValue = document.getElementById('optionDropdown').value;
- const options = document.querySelectorAll(CLASS_SELECTOR);
- options.forEach((option) => {
- if ((option.getAttribute('title') || option.textContent.trim()) === selectedOptionValue) {
- option.click();
- localStorage.setItem(STORAGE_KEY, selectedOptionValue);
- toggleMenu();
- }
- });
- }
- // Function to create the custom menu
- function createCustomMenu() {
- const options = document.querySelectorAll(CLASS_SELECTOR);
- const dropdownMenu = createDropdownMenu(options);
- const selectedOptionValue = localStorage.getItem(STORAGE_KEY);
- if (selectedOptionValue !== null) {
- dropdownMenu.value = selectedOptionValue;
- }
- const confirmButton = document.createElement('button');
- confirmButton.textContent = 'Confirm';
- confirmButton.addEventListener('click', handleOptionSelection);
- const customMenu = document.createElement('div');
- customMenu.id = 'customMenu';
- customMenu.style.display = 'none';
- customMenu.appendChild(dropdownMenu);
- customMenu.appendChild(confirmButton);
- document.body.appendChild(customMenu);
- console.log('Custom menu created and added to the body');
- }
- // Function to automatically select the saved option
- function autoSelectOption() {
- const selectedOptionValue = localStorage.getItem(STORAGE_KEY);
- if (selectedOptionValue !== null) {
- const options = document.querySelectorAll(CLASS_SELECTOR);
- options.forEach((option) => {
- if ((option.getAttribute('title') || option.textContent.trim()) === selectedOptionValue) {
- option.click();
- }
- });
- }
- }
- // Function to initialize the script
- function init() {
- const styleElement = document.createElement('style');
- styleElement.textContent = menuStyles;
- document.head.appendChild(styleElement);
- console.log('Styles added to the head');
- createCustomMenu();
- document.addEventListener('keydown', function (event) {
- if (event.key === 'F2') {
- console.log('F2 key pressed');
- toggleMenu();
- }
- });
- setTimeout(autoSelectOption, 100); // Delay execution to allow page load
- console.log('Script initialized');
- }
- // Run the script
- init();
- })();