您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Double click to switch password field: YELLOW (pop up tooltip with password); BULE (mouse over to show password); NORMAL (hide password);
// ==UserScript== // @name Show Password Pro. // @namespace ShowPassword // @description Double click to switch password field: YELLOW (pop up tooltip with password); BULE (mouse over to show password); NORMAL (hide password); // @include * // @version 2015.10.11.05 // @author OscarKoo // @grant none // @run-at document-end // ==/UserScript== (function(document) { var delay = 333; var index = 0; var getCacheKey = function(target) { var key = 'data-okspId'; var value; if (!(value = target.getAttribute(key))) { target.setAttribute(key, (value = target.id || target.name || ++index)); } return 'okShowPasswordMode_' + value; }; var getMode = function(target) { var mode = localStorage.getItem(getCacheKey(target)); if (!mode || !(mode = parseInt(mode, 10)) || mode < 1 || mode > 3) mode = 1; return mode; }; var setMode = function(target, mode) { if (!(mode = parseInt(mode, 10)) || mode < 1 || mode > 3) mode = 1; localStorage.setItem(getCacheKey(target), mode); return mode; }; function onInput(e) { var target = e.target; target.title = target.value; return false; } function onMouseOver(e) { var target = e.target; target.type = 'text'; target.focus(); target.selectionStart = target.selectionEnd = target.value.length; return false; } function onMouseOut(e) { var target = e.target; setTimeout(function() { target.blur(); target.type = 'password'; }, delay); return false; } function switchMode(target, mode, isClick) { target.title = ''; target.type = 'password'; target.style.border = ''; target.removeEventListener('input', onInput); target.removeEventListener('mouseover', onMouseOver); target.removeEventListener('mouseout', onMouseOut); switch (mode) { case 1: target.style.border = '2px solid #FFCC00'; target.addEventListener('input', onInput); target.title = target.value; break; case 2: target.style.border = '2px solid #3399FF'; target.addEventListener('mouseover', onMouseOver); target.addEventListener('mouseout', onMouseOut); if (isClick) target.type = 'text'; else target.blur(); break; } } function onDblClick(e) { var target = e.target; var mode = getMode(target); mode = setMode(target, ++mode); switchMode(target, mode, true); } (function() { var pwdList = document.querySelectorAll('input[type=password]'); for (var i = 0; i < pwdList.length; i++) { var target = pwdList[i]; target.addEventListener('dblclick', onDblClick); var mode = getMode(target); setMode(target, mode); switchMode(target, mode); } })(); })(document);
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址