// ==UserScript== // @name 防止未经授权的自动复制 // @version 8 // @author ChatGPT // @description 在非选词复制时提示用户以防止未经授权的自动复制。 // @grant GM_setClipboard // @run-at document-start // @match *://*/* // @namespace https://greasyfork.org/users/452911 // @downloadURL none // ==/UserScript== (function() { 'use strict'; let hasCopied = false; let timeoutId = null; const handleCopy = function(event) { event.preventDefault(); const selection = window.getSelection().toString(); if (!hasCopied) { hasCopied = true; const shouldCopy = confirm('是否复制?\n' + selection); if (shouldCopy) { GM_setClipboard(selection); } timeoutId = setTimeout(function() { hasCopied = false; timeoutId = null; }, 2000); // 设置延时时间,单位为毫秒 } }; const handleSelectionChange = function() { const selection = window.getSelection().toString(); if (selection.length === 0) { document.addEventListener('copy', handleCopy); } else { document.removeEventListener('copy', handleCopy); } }; document.addEventListener('copy', handleCopy); document.addEventListener('selectionchange', handleSelectionChange); // 在页面卸载前清除延时器 window.addEventListener('beforeunload', function() { if (timeoutId) { clearTimeout(timeoutId); } }); })();