BiliMedalNoWait

Remove waiting time restriction when deleting Bilibili fan medals

// ==UserScript==
// @name         BiliMedalNoWait
// @name:zh-CN   B站删除粉丝勋章无需等待
// @namespace    https://space.bilibili.com/35192025
// @version      0.2.1
// @description  Remove waiting time restriction when deleting Bilibili fan medals
// @description:zh-CN  移除B站删除粉丝勋章时的10秒等待限制
// @author       boxie123
// @match        https://link.bilibili.com/p/center/index
// @grant        none
// @license      MIT
// ==/UserScript==

(function () {
  'use strict';

  // 等待.link-popup-ctnr元素加载完成
  const waitForPopupContainers = () => {
    const containers = document.querySelectorAll('.link-popup-ctnr');
    if (containers && containers.length > 0) {
      // console.log(`找到${containers.length}个.link-popup-ctnr元素`);
      // 为每个容器初始化观察器
      containers.forEach((container, index) => {
        // console.log(`正在初始化第${index + 1}个容器的监听`);
        console.log(container);
        initObserver(container);
      });
    } else {
      // 如果元素还没加载,等待100ms后重试
      setTimeout(waitForPopupContainers, 100);
    }
  };

  // 初始化MutationObserver
  const initObserver = (container) => {
    // console.log("初始化监听");
    const observer = new MutationObserver((mutations) => {
      mutations.forEach((mutation) => {
        // console.log("检测到DOM变化");
        mutation.addedNodes.forEach((node) => {
          if (node.nodeType === Node.ELEMENT_NODE) {
            // console.log("新增DOM元素:", node);
            const confirmButton = node.querySelector('.bl-button--shallow[disabled]');
            if (confirmButton) {
              console.log("找到禁用的确认按钮,正在启用...");
              confirmButton.removeAttribute('disabled');
              confirmButton.classList.remove('bl-button--shallow');
              confirmButton.classList.add('bl-button--ghost');
            }
          }
        });
      });
    });

    // 监听配置
    observer.observe(container, {
      childList: true,
      subtree: true
    });
  };

  // 监听DOM变化,处理动态加载的容器
  const observeDocument = () => {
    const documentObserver = new MutationObserver((mutations) => {
      mutations.forEach((mutation) => {
        mutation.addedNodes.forEach((node) => {
          if (node.nodeType === Node.ELEMENT_NODE) {
            const newContainers = node.querySelectorAll('.link-popup-ctnr');
            if (newContainers.length > 0) {
              // console.log(`检测到${newContainers.length}个新的.link-popup-ctnr元素`);
              newContainers.forEach((container) => initObserver(container));
            }
          }
        });
      });
    });

    // 确保body已经存在后再开始观察
    if (document.body) {
      documentObserver.observe(document.body, {
        childList: true,
        subtree: true
      });
    } else {
      // 如果body还不存在,等待DOM加载完成
      document.addEventListener('DOMContentLoaded', () => {
        documentObserver.observe(document.body, {
          childList: true,
          subtree: true
        });
      });
    }
  };

  // 确保DOM加载完成后再启动脚本
  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', () => {
      waitForPopupContainers();
      observeDocument();
    });
  } else {
    // 如果DOM已经加载完成,直接执行
    waitForPopupContainers();
    observeDocument();
  }
})();

QingJ © 2025

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