// ==UserScript== // @name 二维码生成器 // @namespace http://tampermonkey.net/ // @version 1.5 // @description 在任何页面上生成文本或当前URL的二维码,支持快捷键 Ctrl+Q 打开窗口 // @author wll // @match *://*/* // @grant GM_registerMenuCommand // @grant GM_addStyle // @license AGPL-3.0-or-later // @downloadURL none // ==/UserScript== (function() { 'use strict'; // 引入qrcode.min.js库 const script = document.createElement('script'); script.src = 'https://cdn.jsdelivr.net/npm/qrcodejs@1.0.0/qrcode.min.js'; document.head.appendChild(script); // 添加样式 GM_addStyle(` #qr-generator-modal { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: white; border: 1px solid #ccc; padding: 40px; z-index: 10000; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); border-radius: 8px; max-width: 360px; width: 100%; text-align: center; } #qr-generator-buttons { display: flex; justify-content: center; gap: 10px; margin-top: 10px; } #qr-generator-modal textarea { width: 100%; height: 100px; margin-bottom: 10px; } #qr-close-button { position: absolute; top: 8px; right: 8px; background: none; border: none; font-size: 16px; cursor: pointer; } #qr-code { display: flex; justify-content: center; margin-top: 10px; } .qr-button { background-color: #007BFF; color: white; border: none; padding: 10px 20px; border-radius: 5px; cursor: pointer; font-size: 14px; } .qr-button:hover { background-color: #0056b3; } #qr-error-message { color: red; margin-top: 10px; display: none; } `); // 添加菜单项 GM_registerMenuCommand("打开生成器", openQRCodeGenerator); // 添加快捷键监听器 document.addEventListener('keydown', function(event) { if (event.ctrlKey && event.key === 'q') { // 阻止默认的打印行为 event.preventDefault(); openQRCodeGenerator(); } }); // 创建模态窗口 function openQRCodeGenerator() { // 检查是否已经有模态窗口 if (document.getElementById('qr-generator-modal')) { return; } // 创建模态窗口 const modal = document.createElement('div'); modal.id = 'qr-generator-modal'; modal.innerHTML = `