隐藏所有图片元素,可以用来看网页小说和视频,脚本菜单启用/禁用脚本,也可以通过A键加B键触发
- // ==UserScript==
- // @name 图片样式屏蔽器
- // @version 1.5
- // @description 隐藏所有图片元素,可以用来看网页小说和视频,脚本菜单启用/禁用脚本,也可以通过A键加B键触发
- // @author ChatGPT
- // @match *://*/*
- // @grant GM_registerMenuCommand
- // @grant GM_unregisterMenuCommand
- // @grant GM_setValue
- // @grant GM_getValue
- // @run-at document-start
- // @namespace https://greasyfork.org/users/452911
- // ==/UserScript==
- (function() {
- 'use strict';
- const currentHostname = window.location.hostname;
- const styleId = 'image-style-blocker';
- let isStyleBlocked = GM_getValue(`use_image_style_blocker_${currentHostname}`, false);
- // 检查并应用图片样式屏蔽器
- checkAndApplyImageStyleBlocker();
- let aKeyPressed = false;
- let bKeyPressed = false;
- // 监听快捷键事件
- document.addEventListener('keydown', function(e) {
- if (e.key === 'a') {
- aKeyPressed = true;
- }
- if (e.key === 'b') {
- bKeyPressed = true;
- }
- if (aKeyPressed && bKeyPressed) {
- e.preventDefault(); // 阻止默认行为
- toggleImageStyleBlocker();
- aKeyPressed = false; // 重置状态
- bKeyPressed = false; // 重置状态
- }
- });
- document.addEventListener('keyup', function(e) {
- if (e.key === 'a') {
- aKeyPressed = false;
- }
- if (e.key === 'b') {
- bKeyPressed = false;
- }
- });
- // 动态创建或更新菜单项
- function updateMenu() {
- GM_unregisterMenuCommand("启用图片样式屏蔽器");
- GM_unregisterMenuCommand("禁用图片样式屏蔽器");
- if (isStyleBlocked) {
- GM_registerMenuCommand("禁用图片样式屏蔽器", () => {
- GM_setValue(`use_image_style_blocker_${currentHostname}`, false);
- isStyleBlocked = false;
- removeImageStyleBlocker();
- updateMenu(); // 更新菜单项
- });
- } else {
- GM_registerMenuCommand("启用图片样式屏蔽器", () => {
- GM_setValue(`use_image_style_blocker_${currentHostname}`, true);
- isStyleBlocked = true;
- applyImageStyleBlocker();
- updateMenu(); // 更新菜单项
- });
- }
- }
- function checkAndApplyImageStyleBlocker() {
- isStyleBlocked = GM_getValue(`use_image_style_blocker_${currentHostname}`, false);
- updateMenu(); // 更新菜单项
- if (isStyleBlocked) {
- applyImageStyleBlocker();
- } else {
- removeImageStyleBlocker();
- }
- }
- function applyImageStyleBlocker() {
- let style = document.createElement('style');
- style.id = styleId;
- style.innerHTML = `img,[style*='height:'][style*='width:'] {display: none !important;visibility: hidden; opacity: 0; z-index: -999; width: 0; height: 0; pointer-events: none; position: absolute; left: -9999px; top: -9999px;}`;
- document.head.appendChild(style);
- }
- function removeImageStyleBlocker() {
- let style = document.getElementById(styleId);
- if (style) {
- style.remove();
- }
- }
- function toggleImageStyleBlocker() {
- isStyleBlocked = !isStyleBlocked;
- GM_setValue(`use_image_style_blocker_${currentHostname}`, isStyleBlocked);
- if (isStyleBlocked) {
- applyImageStyleBlocker();
- } else {
- removeImageStyleBlocker();
- }
- updateMenu(); // 更新菜单项
- }
- })();