在网页上添加一个按钮,用于隐藏特定的URL,并可以编辑黑名单。
// ==UserScript==
// @name u9c9.com 链接屏蔽
// @namespace http://tampermonkey.net/
// @version 0.3
// @description 在网页上添加一个按钮,用于隐藏特定的URL,并可以编辑黑名单。
// @author
// @match *://*.u9a9.com/*
// @require https://code.jquery.com/jquery-3.6.0.min.js
// @grant none
// ==/UserScript==
(function() {
'use strict';
// 创建一个按钮用于编辑黑名单
var $editButton = $('<button style="position: fixed; bottom: 20px; left: 20px; z-index: 9999;">编辑黑名单</button>');
$editButton.on('click', function() {
var blockedUrls = JSON.parse(localStorage.getItem('blockedUrls')) || [];
var urlList = blockedUrls.join("\n");
// 创建一个弹出窗口
var $popup = $('<div style="position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background-color: #fff; padding: 20px; border: 1px solid #ccc; box-shadow: 0 2px 4px rgba(0,0,0,0.2); z-index: 99999;">'+
'<div style="text-align: right;"><button id="closeButton" style="cursor: pointer;">关闭</button></div>'+ // 添加关闭按钮
'<h3>编辑黑名单列表</h3>'+
'<textarea id="blacklistTextarea" style="width: 300px; height: 200px;"></textarea>'+
'<br>'+
'<button id="saveButton">保存</button>'+
'</div>');
// 将黑名单列表加载到文本框中
$popup.find('#blacklistTextarea').val(urlList);
// 保存按钮点击事件
$popup.find('#saveButton').on('click', function() {
var newUrlList = $popup.find('#blacklistTextarea').val();
blockedUrls = newUrlList.split("\n").filter(url => url.trim() !== "");
localStorage.setItem('blockedUrls', JSON.stringify(blockedUrls));
$popup.remove(); // 移除弹出窗口
});
// 关闭按钮点击事件
$popup.find('#closeButton').on('click', function() {
$popup.remove(); // 移除弹出窗口
});
// 将弹出窗口添加到页面
$('body').append($popup);
});
// 将编辑黑名单按钮添加到页面
$('body').append($editButton);
// 隐藏已经在黑名单中的链接
hideBlockedUrls();
// 在每行的最后新增一个按钮
$('div.container div.table-responsive table.table tbody tr.default').each(function() {
var $row = $(this);
var url = $row.find('td:eq(1) a').attr('href'); // 获取链接地址
var title = $row.find('td:eq(1) a').text().trim(); // 获取链接标题
// 创建一个按钮
var $button = $('<button>屏蔽</button>');
$button.on('click', function() {
// 将链接地址和标题添加到 localStorage,表示需要屏蔽的 URL
var blockedUrls = JSON.parse(localStorage.getItem('blockedUrls')) || [];
blockedUrls.push(title + ': ' + url);
localStorage.setItem('blockedUrls', JSON.stringify(blockedUrls));
// 隐藏被屏蔽按钮所在的行
$row.hide();
});
// 将按钮添加到当前行的最后一个单元格
$row.find('td:last-child').append($button);
});
// 隐藏已经在黑名单中的链接
function hideBlockedUrls() {
var blockedUrls = JSON.parse(localStorage.getItem('blockedUrls')) || [];
$('div.container div.table-responsive table.table tbody tr.default').each(function() {
var $row = $(this);
var url = $row.find('td:eq(1) a').attr('href'); // 获取链接地址
var title = $row.find('td:eq(1) a').text().trim(); // 获取链接标题
// 检查当前链接是否在黑名单中
if (blockedUrls.includes(title + ': ' + url)) {
// 如果在黑名单中,则隐藏按钮所在的行
$row.hide();
}
});
}
})();