您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Indicate password fields that have a maximum length of characters.
当前为
// ==UserScript== // @name Password Length Indicator // @namespace trockenasche // @version 3.0 // @description Indicate password fields that have a maximum length of characters. // @author trockenasche // @homepage https://github.com/trockenasche/US-Password-Length-Indicator // @supportURL https://github.com/trockenasche/US-Password-Length-Indicator/issues // @include * // @icon https://upload.wikimedia.org/wikipedia/commons/thumb/0/0a/Three_asterisks.svg/32px-Three_asterisks.svg.png // @grant none // @run-at document-idle // @license MIT // ==/UserScript== function addGlobalStyle(css) { var head, style; head = document.getElementsByTagName('head')[0]; if (!head) { return; } style = document.createElement('style'); style.innerHTML = css; head.appendChild(style); } function removeMaxLength() { var passFields = document.querySelectorAll("input[type='password']"); [].forEach.call(passFields, function (passField) { passField.removeAttribute("maxLength"); passField.style.border = "0px"; }) var spans = document.querySelectorAll("span.us-pli-span"); [].forEach.call(spans, function (span) { span.remove(); }); } (function () { 'use strict'; var passFields = document.querySelectorAll("input[type='password']"); if (passFields.length == 0) { // Couldn't find any password fields, leaving function. return; } addGlobalStyle(`div.us-pli { position: relative; display: flex; flex-direction: row; width: 100%; align-content: flex-end;}`); addGlobalStyle(`div.us-pli>span { padding: 0px 1px; background: coral; border: 1px solid coral; align-self: center; border-radius: 0px 5px 5px 0px;`); addGlobalStyle(`a.us-pli-button { color: white; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 0.9em; text-decoration: none; }`); addGlobalStyle(`a.us-pli-button:hover { color: red; text-decoration: line-through; }`); [].forEach.call(passFields, function (passField) { if (passField.maxLength > 0) { passField.style.border = "2px solid coral"; // Add the div before the input field. var wrapper = document.createElement('div'); wrapper.classList.add('us-pli'); passField.parentNode.insertBefore(wrapper, passField); // And move the input field inside the div element. wrapper.appendChild(passField); // Add the span element with the maxLength value at the end of the input element. passField.insertAdjacentHTML('afterend', '<span class="us-pli-span"><a href="javascript:void\(0\)" class="us-pli-button" title="remove limit!"> ' + passField.maxLength + '</a></span>'); } }); var usPliButtons = document.querySelectorAll("a.us-pli-button"); if (usPliButtons.length > 0) { [].forEach.call(usPliButtons, function (usPliButton) { usPliButton.addEventListener("click", removeMaxLength); }); } return; }) ();