u9c9.com 链接屏蔽

在网页上添加一个按钮,用于隐藏特定的URL,并可以编辑黑名单。

  1. // ==UserScript==
  2. // @name u9c9.com 链接屏蔽
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.3
  5. // @description 在网页上添加一个按钮,用于隐藏特定的URL,并可以编辑黑名单。
  6. // @author
  7. // @match *://*.u9a9.com/*
  8. // @require https://code.jquery.com/jquery-3.6.0.min.js
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. // 创建一个按钮用于编辑黑名单
  16. var $editButton = $('<button style="position: fixed; bottom: 20px; left: 20px; z-index: 9999;">编辑黑名单</button>');
  17. $editButton.on('click', function() {
  18. var blockedUrls = JSON.parse(localStorage.getItem('blockedUrls')) || [];
  19. var urlList = blockedUrls.join("\n");
  20.  
  21. // 创建一个弹出窗口
  22. 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;">'+
  23. '<div style="text-align: right;"><button id="closeButton" style="cursor: pointer;">关闭</button></div>'+ // 添加关闭按钮
  24. '<h3>编辑黑名单列表</h3>'+
  25. '<textarea id="blacklistTextarea" style="width: 300px; height: 200px;"></textarea>'+
  26. '<br>'+
  27. '<button id="saveButton">保存</button>'+
  28. '</div>');
  29.  
  30. // 将黑名单列表加载到文本框中
  31. $popup.find('#blacklistTextarea').val(urlList);
  32.  
  33. // 保存按钮点击事件
  34. $popup.find('#saveButton').on('click', function() {
  35. var newUrlList = $popup.find('#blacklistTextarea').val();
  36. blockedUrls = newUrlList.split("\n").filter(url => url.trim() !== "");
  37. localStorage.setItem('blockedUrls', JSON.stringify(blockedUrls));
  38. $popup.remove(); // 移除弹出窗口
  39. });
  40.  
  41. // 关闭按钮点击事件
  42. $popup.find('#closeButton').on('click', function() {
  43. $popup.remove(); // 移除弹出窗口
  44. });
  45.  
  46. // 将弹出窗口添加到页面
  47. $('body').append($popup);
  48. });
  49.  
  50. // 将编辑黑名单按钮添加到页面
  51. $('body').append($editButton);
  52.  
  53. // 隐藏已经在黑名单中的链接
  54. hideBlockedUrls();
  55.  
  56. // 在每行的最后新增一个按钮
  57. $('div.container div.table-responsive table.table tbody tr.default').each(function() {
  58. var $row = $(this);
  59. var url = $row.find('td:eq(1) a').attr('href'); // 获取链接地址
  60. var title = $row.find('td:eq(1) a').text().trim(); // 获取链接标题
  61.  
  62. // 创建一个按钮
  63. var $button = $('<button>屏蔽</button>');
  64. $button.on('click', function() {
  65. // 将链接地址和标题添加到 localStorage,表示需要屏蔽的 URL
  66. var blockedUrls = JSON.parse(localStorage.getItem('blockedUrls')) || [];
  67. blockedUrls.push(title + ': ' + url);
  68. localStorage.setItem('blockedUrls', JSON.stringify(blockedUrls));
  69.  
  70. // 隐藏被屏蔽按钮所在的行
  71. $row.hide();
  72. });
  73.  
  74. // 将按钮添加到当前行的最后一个单元格
  75. $row.find('td:last-child').append($button);
  76. });
  77.  
  78. // 隐藏已经在黑名单中的链接
  79. function hideBlockedUrls() {
  80. var blockedUrls = JSON.parse(localStorage.getItem('blockedUrls')) || [];
  81.  
  82. $('div.container div.table-responsive table.table tbody tr.default').each(function() {
  83. var $row = $(this);
  84. var url = $row.find('td:eq(1) a').attr('href'); // 获取链接地址
  85. var title = $row.find('td:eq(1) a').text().trim(); // 获取链接标题
  86.  
  87. // 检查当前链接是否在黑名单中
  88. if (blockedUrls.includes(title + ': ' + url)) {
  89. // 如果在黑名单中,则隐藏按钮所在的行
  90. $row.hide();
  91. }
  92. });
  93. }
  94.  
  95. })();