自动关闭知乎登录(不可用)提示

自动关闭知乎自动弹出的登录(不可用)与注册(不可用)提示,仅仅用于关闭自动弹出的登录(不可用)提示,不干别的,未来也不会去干别的。

目前為 2023-10-05 提交的版本,檢視 最新版本

// ==UserScript==
// @name         自动关闭知乎登录(不可用)提示
// @version      2023.10.05.1
// @author       F9y4ng
// @description  自动关闭知乎自动弹出的登录(不可用)与注册(不可用)提示,仅仅用于关闭自动弹出的登录(不可用)提示,不干别的,未来也不会去干别的。
// @namespace    https://github.com/F9y4ng/GreasyFork-Scripts/
// @icon         https://img.icons8.com/windows/48/zhihu.png
// @homepage     https://f9y4ng.github.io/GreasyFork-Scripts/
// @homepageURL  https://f9y4ng.github.io/GreasyFork-Scripts/
// @supportURL   https://github.com/F9y4ng/GreasyFork-Scripts/issues
// @match        *://*.zhihu.com/*
// @grant        none
// @compatible   Edge version>=105
// @compatible   Chrome version>=105
// @compatible   Firefox version>=103
// @compatible   Opera version>=91
// @compatible   Safari version>=15.4
// @license      GPL-3.0-only
// @copyright    2023, F9y4ng
// @run-at       document-start
// ==/UserScript==

/* jshint esversion: 11 */

(function () {
  "use strict";

  let nologin = true;
  const observer = new MutationObserver(hiddenLogin);
  const config = { childList: true, subtree: true };
  observer.observe(document, config);
  window.addEventListener("load", () => (nologin = false));

  function hiddenLoginNode(node) {
    if (!nologin) return;
    const loginNode = node.querySelector(`button[aria-label="关闭"][class~='Modal-closeButton']`);
    if (!loginNode) return;
    loginNode.click();
    nologin = false;
  }

  function hiddenFloatNode(node) {
    const registFloatNode = node.querySelector(
      `body>div:not([class],[style],[id]):not(:has(.Modal-content)):not(:has(img[class~='Avatar'])) div[class^='css-']:has(svg[class*='css-'])`
    );
    if (!registFloatNode) return;
    registFloatNode.style.display = "none";
  }

  function hiddenLogin(mutationsList, observer) {
    for (let i = 0; i < mutationsList.length; i++) {
      const mutation = mutationsList[i];
      const type = mutation.type;
      if (type !== "childList") continue;
      const addedNodes = mutation.addedNodes;
      for (let j = 0; j < addedNodes.length; j++) {
        const node = addedNodes[j];
        if (node.nodeType !== 1 || node.nodeName !== "DIV" || node.attributes.length) continue;
        hiddenLoginNode(node);
        hiddenFloatNode(node);
      }
    }
  }
})();

QingJ © 2025

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