Greasy Fork

Greasy Fork is available in English.

剪贴板属于用户!!!

剪贴板属于用户!

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         剪贴板属于用户!!!
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  剪贴板属于用户!
// @author       LWF
// @license       MIT
// @match        *://*/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // 存储每个网站的拒绝次数
    const refusalCounts = {};

    // 检测剪贴板写入尝试
    document.addEventListener('copy', function(e) {
        // 如果用户已经永久拒绝,则阻止复制
        if (refusalCounts[window.location.hostname] === 3) {
            e.preventDefault();
            return;
        }

        // 弹出对话框询问用户是否允许复制
        const allowCopy = confirm('您是否允许此网站复制内容到剪贴板?');

        if (!allowCopy) {
            // 用户拒绝复制
            e.preventDefault();

            // 更新拒绝次数
            if (refusalCounts[window.location.hostname]) {
                refusalCounts[window.location.hostname]++;
            } else {
                refusalCounts[window.location.hostname] = 1;
            }

            // 如果连续拒绝三次,则永久阻止
            if (refusalCounts[window.location.hostname] === 3) {
                alert('您已永久拒绝此网站的剪贴板访问权限。');
            }
        }
    });
})();