您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
17.11.2020, 20:59:04
- // ==UserScript==
- // @name Generate Password Button
- // @namespace Violentmonkey Scripts
- // @match *://*/*
- // @grant none
- // @version 1.1
- // @author Degreet Pro <degreetpro@gmail.com>
- // @description 17.11.2020, 20:59:04
- // ==/UserScript==
- const chars = "1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM!@$%^&*()_-+"
- const styles = document.createElement("style")
- document.head.append(styles)
- styles.innerHTML = `
- .generate-password-violentmonkey-script-button {
- position: fixed;
- right: 20px;
- bottom: 0;
- background: #fff;
- width: 60px;
- height: 60px;
- border-top-left-radius: 50%;
- border-top-right-radius: 50%;
- font-size: 30px;
- border: 1px solid #bfbfbf;
- opacity: .2;
- display: flex;
- justify-content: center;
- align-items: center;
- outline: none;
- z-index: 999;
- transform: translateY(50px);
- transition: .3s;
- }
- .generate-password-violentmonkey-script-button:hover {
- opacity: 1;
- transform: translateY(20px);
- }
- .generate-password-violentmonkey-script-button.success {
- border: 1px solid green;
- color: green;
- }
- .generate-password-violentmonkey-script-button.warning {
- border: 1px solid orange;
- color: orange;
- }
- `
- const genPwdBtn = document.createElement("button")
- genPwdBtn.className = "generate-password-violentmonkey-script-button"
- genPwdBtn.innerText = "+"
- document.body.append(genPwdBtn)
- genPwdBtn.onclick = () => {
- const {hostname} = location
- if (localStorage[hostname]) {
- const password = localStorage[hostname]
- navigator.clipboard.writeText(password)
- genPwdBtn.classList.add("warning")
- setTimeout(() => genPwdBtn.classList.remove("warning"), 1000)
- } else {
- const password = generatePassword()
- navigator.clipboard.writeText(password)
- localStorage[hostname] = password
- genPwdBtn.classList.add("success")
- setTimeout(() => genPwdBtn.classList.remove("success"), 1000)
- }
- }
- function generatePassword() {
- let pass = ""
- for (let i = 0; i < 16; i++) pass += chars[Math.floor(Math.random() * chars.length)]
- return pass
- }