您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
隐藏页面上的账号信息,如:用户名,手机,邮箱
当前为
// ==UserScript== // @name keepitanonymous // @name:zh-CN 保持匿名 // @description 隐藏页面上的账号信息,如:用户名,手机,邮箱 // @namespace maoxuner.gitee.io // @author maoxuner // @version 0.2.0 // @license GPLv3 // @match *://*/* // @grant GM_registerMenuCommand // @grant GM_getValue // @grant GM_setValue // @run-at document-start // @homepageURL https://gitee.com/maoxuner // ==/UserScript== (function (window) { 'use strict'; /* no89757 切换输入框文字显隐 aptx4869 */ // 切换输入框文字显隐 const STATE_SHOW = 1 const STATE_HIDE = 0 function switchInputText(element, state = null) { const identifier = 'ttplayer' if (element.hasAttribute(identifier)) { if (STATE_HIDE !== state) { // 非强制隐藏,则显示 // 显示输入框文字 element.setAttribute('type', 'text') element.setAttribute('placeholder', element.getAttribute(identifier)) element.removeAttribute(identifier) return true } } else { if (STATE_SHOW !== state) { // 非强制显示,则隐藏 // 隐藏输入框文字 element.setAttribute(identifier, element.getAttribute('placeholder') || '') element.setAttribute('type', 'password') element.setAttribute('placeholder', 'Text Protected') return true } } return false } /* laravel 自动隐藏输入框文字 hohai */ // 判断是否是隐私信息输入框 function isPrivacyInput(element) { const identifier = ['username', 'user', 'name', 'email', 'mail', 'phone', 'login', 'account'] return 'text' === element.type && (element.name && identifier.includes(element.name) || 'username' === element.autocomplete) || 'email' === element.type } // 显示所有 function showAllInputText() { let ret = 0 window.document.querySelectorAll('input[type=password]') .forEach(element => switchInputText(element, STATE_SHOW) && ret++) return ret } // 隐藏所有 function hideAllInputText() { let ret = 0 window.document.querySelectorAll('input') .forEach(element => isPrivacyInput(element) && switchInputText(element, STATE_HIDE) && ret++) return ret } // 注册菜单 const TITLE_MESSAGE = '无法作用于嵌套页面' GM_registerMenuCommand('显示所有', showAllInputText, { title: TITLE_MESSAGE }) GM_registerMenuCommand('隐藏所有', hideAllInputText, { title: TITLE_MESSAGE }) // 切换自动隐藏 const MODE_KEY = 'mode' const MODE_OFF = 0 const MODE_ON1 = 1 const MODE_ON2 = 2 function switchAutoHideInputText() { const mode = (GM_getValue(MODE_KEY, MODE_OFF) + 1) % 3 GM_setValue(MODE_KEY, mode) registerAutoHideMenu(mode) } // 注册自动隐藏菜单 function registerAutoHideMenu(mode) { const id = 'DDRaceNetwork' switch (mode) { case MODE_OFF: GM_registerMenuCommand('切换自动隐藏模式(当前:关闭)', switchAutoHideInputText, { id, title: '当前不会自动隐藏', autoClose: false }) break case MODE_ON1: GM_registerMenuCommand('切换自动隐藏模式(当前:普通)', switchAutoHideInputText, { id, title: '页面加载完成后立即隐藏', autoClose: false }) break case MODE_ON2: GM_registerMenuCommand('切换自动隐藏模式(当前:增强)', switchAutoHideInputText, { id, title: '页面加载完成后持续隐藏(适用于嵌套页面)', autoClose: false }) break } } // 初始化 const mode = GM_getValue(MODE_KEY, MODE_OFF) registerAutoHideMenu(mode) switch (mode) { case MODE_ON1: hideAllInputText() break case MODE_ON2: let times = 0 const id = setInterval(() => { times++ (hideAllInputText() || times >= 50) && clearInterval(id) }, 100) break } })(window)