// ==UserScript== // @name 隐藏图片并管理白名单(摸鱼) // @namespace http://tampermonkey.net/ // @version 0.8 // @description 仅在白名单中的域名下隐藏图片,并管理白名单功能(通过菜单命令) // @author lengsukq // @match *://*/* // @grant GM_registerMenuCommand // @grant GM_setValue // @grant GM_getValue // @downloadURL none // ==/UserScript== (function() { 'use strict'; // 获取当前域名 var currentDomain = window.location.hostname; // 检查白名单域名 var whitelistDomains = GM_getValue("whitelistDomains", []); // 如果当前域名在白名单中,隐藏图片 if (whitelistDomains.includes(currentDomain)) { console.log(currentDomain + " 在白名单中,隐藏图片"); var images = document.querySelectorAll("img"); images.forEach(function(img) { img.style.display = "none"; }); } else { console.log(currentDomain + " 不在白名单中,不隐藏图片"); } // 注册菜单命令 GM_registerMenuCommand('管理白名单', function() { // 创建弹出窗体 var overlay = document.createElement("div"); overlay.style.position = "fixed"; overlay.style.top = "0"; overlay.style.left = "0"; overlay.style.width = "100%"; overlay.style.height = "100%"; overlay.style.backgroundColor = "rgba(0, 0, 0, 0.6)"; // 更暗的背景 overlay.style.zIndex = "10001"; overlay.style.display = "flex"; // 使用flex布局使内容居中 overlay.style.alignItems = "center"; overlay.style.justifyContent = "center"; document.body.appendChild(overlay); var form = document.createElement("div"); form.style.backgroundColor = "white"; form.style.padding = "30px"; // 增加内边距 form.style.width = "400px"; // 设置固定宽度 form.style.borderRadius = "10px"; // 更圆滑的边角 form.style.boxShadow = "0 4px 8px rgba(0, 0, 0, 0.1)"; // 添加阴影 form.style.zIndex = "10002"; overlay.appendChild(form); var title = document.createElement("h2"); title.textContent = "管理白名单"; title.style.marginTop = "0"; title.style.fontSize = "20px"; // 标题字体大小 title.style.textAlign = "center"; // 居中标题 form.appendChild(title); var label = document.createElement("label"); label.textContent = "白名单域名 (每行一个):"; label.style.fontSize = "14px"; // 较小的字体 label.style.display = "block"; label.style.marginBottom = "10px"; form.appendChild(label); var textarea = document.createElement("textarea"); textarea.style.display = "block"; textarea.style.margin = "10px 0"; textarea.style.width = "100%"; textarea.style.height = "200px"; // 更大的高度 textarea.style.padding = "10px"; // 增加内边距 textarea.style.borderRadius = "5px"; // 圆角输入框 textarea.style.border = "1px solid #ccc"; // 边框颜色 textarea.style.fontSize = "14px"; // 输入框文字大小 textarea.value = GM_getValue("whitelistDomains", []).join("\n"); form.appendChild(textarea); // 创建保存按钮 var saveButton = document.createElement("button"); saveButton.type = "button"; saveButton.textContent = "保存"; saveButton.style.backgroundColor = "#4CAF50"; // 绿色背景 saveButton.style.color = "white"; saveButton.style.border = "none"; saveButton.style.padding = "10px 20px"; saveButton.style.borderRadius = "5px"; saveButton.style.cursor = "pointer"; saveButton.style.marginRight = "10px"; // 与取消按钮间距 form.appendChild(saveButton); // 创建取消按钮 var cancelButton = document.createElement("button"); cancelButton.type = "button"; cancelButton.textContent = "取消"; cancelButton.style.backgroundColor = "#f44336"; // 红色背景 cancelButton.style.color = "white"; cancelButton.style.border = "none"; cancelButton.style.padding = "10px 20px"; cancelButton.style.borderRadius = "5px"; cancelButton.style.cursor = "pointer"; form.appendChild(cancelButton); // 保存按钮点击事件 saveButton.addEventListener("click", function() { var whitelistDomains = textarea.value.trim().split("\n").filter(Boolean); GM_setValue("whitelistDomains", whitelistDomains); console.log("白名单已保存: " + whitelistDomains.join(", ")); // 移除弹出窗体 document.body.removeChild(overlay); }); // 取消按钮点击事件,关闭窗体但不保存 cancelButton.addEventListener("click", function() { document.body.removeChild(overlay); }); // 点击空白处关闭窗体但不保存 overlay.addEventListener("click", function(event) { if (event.target === overlay) { document.body.removeChild(overlay); } }); // 防止点击窗体内容时关闭窗体 form.addEventListener("click", function(event) { event.stopPropagation(); }); }); })();