此插件【自动化显示密码插件-Auto Show Password】由vps优惠指南使用ChatGPT创建并优化,开启插件后,密码星号解除并显示密码,可复制,请在私人电脑使用,公用电脑请慎用。
自动化显示密码插件-Auto Show Password
// ==UserScript== // @name 自动化显示密码 // @name:en Auto Show Password // @description 自动化显示密码 // @description:en Auto Show Password // @namespace https://www.vpsoffers.net/plugins/auto-show-password.html // @homepageURL https://www.vpsoffers.net/plugins/auto-show-password.html // @version 0.5 // @include * // @license * // @grant GM_addStyle // @grant GM_setValue // @grant GM_getValue // @run-at document-idle // @license AGPLv3 // @author lcldh/ChatGPT // @match *://*/* // @grant none // ==/UserScript== (function() { 'use strict'; // Replacement function function replacePasswords() { var inputs = document.getElementsByTagName("input"); for (var i = 0; i < inputs.length; i++) { var input = inputs[i]; if (input.type.toLowerCase() === "password") { try { input.type = "text"; } catch (e) { var newInput, attributes; newInput = document.createElement("input"); attributes = input.attributes; for (var j = 0; j < attributes.length; j++) { var attribute, name, value; attribute = attributes[j]; name = attribute.nodeName; value = attribute.nodeValue; if ("type" !== name.toLowerCase() && "height" !== name && "width" !== name && !!value) { newInput[name] = value; } } input.parentNode.replaceChild(newInput, input); } } } } // Select the node that will be observed for mutations const targetNode = document.body; // Options for the observer (which mutations to observe) const config = { attributes: true, childList: true, subtree: true }; // Callback function to execute when mutations are observed const callback = function(mutationsList, observer) { for(let mutation of mutationsList) { if (mutation.type === 'childList') { setTimeout(replacePasswords, 500); } } }; // Create an observer instance linked to the callback function const observer = new MutationObserver(callback); // Start observing the target node for configured mutations observer.observe(targetNode, config); // Execute the replacement once after the page is loaded window.addEventListener('DOMContentLoaded', () => { setTimeout(replacePasswords, 500); }); })();
自动化显示密码插件解析
- 脚本主体部分:
- 函数
replacePasswords()
用于查找并替换页面上的密码输入框。通过遍历所有<input>
元素,判断元素类型是否为 password,如果是,则尝试将其类型改为 text,以显示密码明文。如果无法直接修改 type 属性,会创建一个新的 input 元素复制原有属性,并替换原密码输入框。
- 函数
- 使用MutationObserver来监听DOM变化:
targetNode
设置要观察的目标节点为整个文档 body。config
配置对象指定了观察器需要观察的变更类型,包括属性更改、子节点列表变化以及整个子树的变化。callback
函数作为观察器的回调函数,当检测到目标节点有子节点列表变化时,会在500毫秒后执行replacePasswords()
函数。- 创建一个 MutationObserver 实例并关联回调函数。
- 开始观察目标节点的指定类型变化。
-
最后,脚本在页面加载完成后(DOMContentLoaded 事件触发时),也会执行一次
replacePasswords()
函数,确保页面初始加载时的密码输入框也被处理。
此脚本的主要目的是为了在用户浏览网页时,自动将原本隐藏的密码内容显示为明文。但请注意,这种操作可能带来严重的安全风险,因为它暴露了用户的敏感信息,所以在实际使用中,请谨慎使用此脚本。
自动化显示密码插件使用教程
- 点击篡改猴或油猴 + <新建用户脚本>
- 复制上方 👆 自动化显示密码插件-Auto Show Password的代码并粘贴
- 启动完成