Greasy Fork镜像 支持简体中文。

動畫瘋隱藏觀看紀錄(簡潔版)

在每個卡片右上角新增隱藏按鈕,點擊後即可隱藏該卡片。點擊"觀看紀錄"可以切換顯示隱藏的卡片。

  1. // ==UserScript==
  2. // @name 動畫瘋隱藏觀看紀錄(簡潔版)
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.1
  5. // @description 在每個卡片右上角新增隱藏按鈕,點擊後即可隱藏該卡片。點擊"觀看紀錄"可以切換顯示隱藏的卡片。
  6. // @author rarachi
  7. // @match https://ani.gamer.com.tw/viewList.php*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. (function () {
  12. "use strict";
  13.  
  14. let showHidden = JSON.parse(localStorage.getItem("aniShowHidden") || "false");
  15.  
  16. //隱藏紀錄按鈕
  17. const addCloseButton = (card) => {
  18. const closeButton = document.createElement("button");
  19. closeButton.textContent = "x";
  20. closeButton.style.position = "absolute";
  21. closeButton.style.right = "0";
  22. closeButton.style.top = "0";
  23. closeButton.style.backgroundColor = "transparent";
  24. closeButton.style.opacity = "0";
  25. closeButton.onclick = () => {
  26. card.parentElement.style.display = "none";
  27. const animeTitle = card.querySelector(".history-anime-title").textContent;
  28. let hiddenCards = JSON.parse(localStorage.getItem("hiddenCards") || "[]");
  29.  
  30. if (hiddenCards.includes(animeTitle)) {
  31. // 如果動畫已經在隱藏列表中,則從列表中移除
  32. const index = hiddenCards.indexOf(animeTitle);
  33. hiddenCards.splice(index, 1);
  34. } else {
  35. // 否則,將動畫添加到隱藏列表中
  36. hiddenCards.push(animeTitle);
  37. }
  38. localStorage.setItem("hiddenCards", JSON.stringify(hiddenCards));
  39. };
  40.  
  41. card.style.position = "relative";
  42. card.appendChild(closeButton);
  43. };
  44.  
  45. const animeCards = document.querySelectorAll(".anime-card");
  46. const animeTitlesInPage = Array.from(animeCards).map(
  47. (card) => card.querySelector(".history-anime-title").textContent
  48. );
  49.  
  50. // 清除過期紀錄
  51. let hiddenCards = JSON.parse(localStorage.getItem("hiddenCards") || "[]");
  52. hiddenCards = hiddenCards.filter((animeTitle) =>
  53. animeTitlesInPage.includes(animeTitle)
  54. );
  55. localStorage.setItem("hiddenCards", JSON.stringify(hiddenCards));
  56.  
  57. animeCards.forEach((card) => {
  58. const animeTitle = card.querySelector(".history-anime-title").textContent;
  59. addCloseButton(card);
  60. if (hiddenCards.includes(animeTitle)) {
  61. card.parentElement.style.display = showHidden ? "block" : "none";
  62. } else {
  63. card.parentElement.style.display = showHidden ? "none" : "block";
  64. }
  65. });
  66.  
  67. // 以"觀看紀錄"切換頁面
  68. const themeTitle = document.querySelector(".theme-title");
  69. themeTitle.style.cursor = "pointer";
  70. themeTitle.addEventListener("click", () => {
  71. const currentShowHidden = JSON.parse(
  72. localStorage.getItem("aniShowHidden") || "false"
  73. );
  74. localStorage.setItem("aniShowHidden", JSON.stringify(!currentShowHidden));
  75. location.reload();
  76. });
  77. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址