Greasy Fork is available in English.
仅在白名单中的域名下隐藏图片,并管理白名单功能(通过菜单命令)
当前为
// ==UserScript==
// @name 隐藏图片并管理白名单(摸鱼)
// @namespace http://tampermonkey.net/
// @version 0.8
// @description 仅在白名单中的域名下隐藏图片,并管理白名单功能(通过菜单命令)
// @author lengsukq
// @match *://*/*
// @grant GM_registerMenuCommand
// @grant GM_setValue
// @grant GM_getValue
// ==/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();
});
});
})();