Greasy Fork

全局解除选中、复制与右键限制

精细控制网页限制解除行为 + 可配置强力解除全部限制模式 + 全部关闭模式 (Canvas增强) + 支持用户本地配置规则(本地规则优先于远程)(完结撒花)

这些是代码发生过变更的脚本版本 显示所有版本

  • v1.4.3 2025-05-15

    为了保证大多数网页的正常浏览,我决定还是默认把解除选择设置为关闭,太多的正常网站无法适配,只能特定去发现一些恶心人的网站来专门适配。如果你需要默认开启的话,请在代码里面找到

        // 默认规则
        const defaultRule = {
          unlockSelect: false,     // 是否解除选中限制
          unlockCopy: true,       // 是否解除复制/剪切限制
          unlockContext: true,    // 是否解除右键菜单限制
          unlockOverlay: true,    // 是否移除遮罩层 (常规版)
          unlockOverlayPro: false, // 是否移除遮罩层 (强力版)
          forceUnlockAll: false,   // 是否启用强力解除所有限制模式
          unlockOff: false         // 新增:是否禁用所有解除限制功能 (默认不禁用)
        };
    

    改为

        // 默认规则
        const defaultRule = {
          unlockSelect: true,     // 是否解除选中限制                  (改动了这一行)
          unlockCopy: true,       // 是否解除复制/剪切限制
          unlockContext: true,    // 是否解除右键菜单限制
          unlockOverlay: true,    // 是否移除遮罩层 (常规版)
          unlockOverlayPro: false, // 是否移除遮罩层 (强力版)
          forceUnlockAll: false,   // 是否启用强力解除所有限制模式
          unlockOff: false         // 新增:是否禁用所有解除限制功能 (默认不禁用)
        };
    

    就可以在本地配置默认开启选中限制解除了

  • v1.4.2 2025-05-10

    版本更新日志:v1.4.2

    本次更新在 v1.4.1 版本的基础上,主要对配置加载机制和部分规则处理逻辑进行了优化和完善:

    • 优化配置加载来源日志: 新增更清晰的控制台日志 ([解除限制] 配置加载完成。来源: ...),明确指示脚本的规则配置是来自本地缓存、远程仓库(主链接)、远程仓库(备用链接),还是加载失败,方便用户了解配置状态。
    • 改进全局禁用模式 (unlockOff) 处理: 当网站规则启用 unlockOff: true 时,脚本会更彻底地关闭所有解除限制功能,并在控制台的最终规则状态日志中准确反映所有单项功能均已禁用。
    • 增强远程配置兼容性: 优化了远程配置文件的解析逻辑,即使配置文件中包含注释 ({"comment": "..."} 格式),脚本也能在加载时正确过滤,避免解析错误(即使未启用本地规则合并)。
    • 更新备用远程配置链接及优化连接: 将远程配置的备用链接切换到 jsDelivr CDN,并更新 @connect 头部以支持连接 jsDelivr,提高国内用户的配置加载成功率和速度。同时保留了 Gitee 连接兼容旧配置。

    这些更新主要聚焦于提升脚本的稳定性和用户体验,尤其是在配置加载和错误处理方面。

  • v1.4.1 2025-05-09

    在附加信息中,更新了小故事

  • v1.4 2025-05-09

    版本更新日志:从 v1.3 至 v1.4

    此版本是自 v1.3 以来的一个重大更新,引入了配置管理、功能灵活性和性能上的多项核心改进。 (当然,这条是AI写的,因为这么多字想想就不想写,另一个原因是新加的东西太多,我可能说说明遗漏)

    🚀 核心功能与配置管理:

    • 引入远程配置文件支持:
      • 脚本现在可以从 GitHub 或 Gitee 远程获取最新的配置文件,这意味着您无需更新脚本本体即可获得最新的网站兼容性规则。
      • 远程配置支持缓存机制(默认缓存 7 天),以减少网络请求并提高加载速度。即使网络连接中断或远程服务器不可用,脚本也能使用缓存的配置。
    • 支持用户本地配置(localRules):
      • 在脚本代码中新增了 // --- 用户本地配置区域 ---,允许您在脚本内部定义自己的规则集。
      • 冲突覆盖机制: 本地配置(localRules)中的规则将优先于远程配置,如果 domain 相同,本地规则会覆盖远程规则,为您提供最高级别的自定义权限。
    • 智能配置合并:
      • 当本地配置和远程配置同时存在时,脚本会进行智能合并。如果本地规则的 domain 与远程规则冲突,本地规则会覆盖远程规则。
    • 更灵活的规则匹配:
      • 规则匹配逻辑从简单的列表查找变更为更灵活的基于站点规则对象查找的方式,支持更复杂的规则定义。
    • 不再默认解除所有限制:
      • 默认行为调整为更保守,不再是“如果未指定则默认解除所有限制”,而是遵循明确的配置。

    ✨ 解除限制功能增强与细粒度控制:

    • 新增“强力解除所有限制模式”(forceUnlockAll):
      • 引入一个激进的模式,尝试禁用几乎所有页面事件、CSS 属性,甚至清除定时器,适用于那些极其顽固、难以解除限制的网站。(当然,我败给百度了,百度文库实在是太厉害力)
    • 新增“完全禁用模式”(unlockOff):
      • 引入一个最高优先级的配置项,允许您为特定网站完全禁用脚本的所有解除限制功能,以解决兼容性问题。
    • 新增“强力移除遮罩层”(unlockOverlayPro):
      • 提供了更强大的遮罩层移除功能,可以针对更复杂或动态生成的遮罩层进行移除。
    • 解除选中和复制功能分离:
      • 将原有的 unlockSelectCopy 选项拆分为独立的 unlockSelect(解除选中)和 unlockCopy(解除复制/剪切)两个选项,提供了更细粒度的控制。
    • 增强的事件阻止机制:
      • 使用 e.stopImmediatePropagation()Object.defineProperty 对事件进行更彻底的阻止,以应对更顽固的限制。

    🛠️ 技术改进与性能提升:

    • 引入 GM_xmlhttpRequestGM_setValue/GM_getValue
      • 利用 Tampermonkey 提供的 GM 函数,实现了远程配置的获取和缓存,显著提升了脚本的加载速度和稳定性。
    • 广泛应用 MutationObserver
      • 针对右键菜单、常规和强力遮罩层移除等功能,引入了 MutationObserver 来监听 DOM 变化,确保脚本在页面动态加载内容或样式变化时,也能持续有效解除限制,提高了兼容性。
    • 引入防抖(Debounce)机制:
      • 对某些频繁触发的 DOM 操作(如遮罩层移除、MutationObserver 回调)应用了防抖处理,减少了不必要的重复执行,从而提升了脚本的运行性能,降低了对页面流畅度的影响。
    • 代码结构优化:
      • 模块化了配置加载和远程获取逻辑,使代码更易于维护和扩展。

    🖥️ 用户体验与日志:

    • 详细的控制台日志:
      • 脚本现在会在浏览器控制台输出更详细、彩色高亮的信息,包括脚本加载状态、当前网站应用的规则详情,方便用户了解脚本运行情况和进行问题排查。
    • 增强的 Greasy Fork 附加信息:
      • 重新组织并扩展了 Greasy Fork 上的附加信息,提供更清晰的配置教程(包括备份、排除网址、使用本地规则)和 JSON 字段说明。(其实这条应该是不用说的)

    其他:

    • 依赖管理更新:
      • @grant none 变更为使用 GM_xmlhttpRequest, GM_setValue, GM_getValue 等 Tampermonkey API,并增加了 @connect 权限以支持远程配置。
  • v1.3 2025-05-09

    v1.3更新(2025.05.09):更新了解除限制的逻辑,更方便用户自己配置【选中/复制】、【右键】、【遮罩层】的网址

  • v1.2 2025-05-09

    v1.1发布(2025.05.09)
    v1.2更新(2025.05.09):修复bilibili视频弹幕被屏蔽的问题

  • v1.1 2025-05-08