悬浮显示密码

鼠标悬浮在密码输入框上时 临时将密码显示为明文 鼠标移出后恢复为隐藏状态

目前為 2025-04-11 提交的版本,檢視 最新版本

// ==UserScript==
// @name         悬浮显示密码
// @description  鼠标悬浮在密码输入框上时 临时将密码显示为明文 鼠标移出后恢复为隐藏状态
// @version      1.0.0
// @icon         https://raw.githubusercontent.com/MiPoNianYou/UserScripts/refs/heads/main/Icons/HoverPasswordIcon.svg
// @author       念柚
// @namespace    https://github.com/MiPoNianYou/UserScripts
// @license      GPL-3.0
// @match        *://*/*
// @grant        none
// ==/UserScript==

(function () {
  "use strict";

  function HandlePasswordInput(input) {
    input.addEventListener("mouseover", function () {
      this.type = "text";
    });
    input.addEventListener("mouseout", function () {
      this.type = "password";
    });
  }

  document
    .querySelectorAll('input[type="password"]')
    .forEach(HandlePasswordInput);

  const Observer = new MutationObserver(function (mutations) {
    mutations.forEach(function (mutation) {
      if (mutation.addedNodes) {
        mutation.addedNodes.forEach(function (node) {
          if (
            node.nodeType === 1 &&
            node.tagName === "INPUT" &&
            node.type === "password"
          ) {
            HandlePasswordInput(node);
          } else if (node.nodeType === 1) {
            node
              .querySelectorAll('input[type="password"]')
              .forEach(HandlePasswordInput);
          }
        });
      }
    });
  });

  Observer.observe(document.body, { childList: true, subtree: true });
})();