Greasy Fork

Greasy Fork is available in English.

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

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

当前为 2025-05-10 提交的版本,查看 最新版本

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

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

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

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

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

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

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

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

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

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

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

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

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

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

作者
yui酱
评分
0 0 0
版本
1.4.1
创建于
2025-05-08
更新于
2025-05-10
大小
24.3 KB
许可证
MIT
适用于
所有网站

⚠️ 重要提示:请务必阅读!

  • 在更新脚本前,请务必备份您在脚本内 // --- 用户本地配置区域 --- 中定义的 localRules 否则,您的自定义规则可能会在更新时被覆盖。
  • 本脚本可能与某些网站的特定功能(如视频播放器的右键菜单、弹幕显示、特定交互式元素)产生冲突。如果您遇到此类问题,请参考下面的 “针对特定网站的兼容性问题和高级配置” 部分进行解决。

⚙️ 配置不需要被解除限制的网站的方法:

本脚本提供两种方法来控制其在特定网站上的行为:

方法一:通过油猴扩展快速禁用(推荐初学者)

这是最直接的方法,适用于临时或针对当前页面快速禁用脚本:

  1. 访问您希望禁用脚本功能的网站。
  2. 点击浏览器中的油猴扩展图标。
  3. 选择“在此网站禁用”或“排除该网址”(具体选项可能因油猴版本而异)。

如何恢复不小心排除的网址:

  1. 点击油猴扩展图标。
  2. 点击本脚本名称:《全局解除选中、复制与右键限制》。
  3. 在新打开的页面中,点击左上角的“设置”图标(通常是一个齿轮形状)。
  4. 在设置界面找到“包括/排除”部分,其中有一个“用户排除”列表。
  5. 在这里,您可以删除您不小心错误排除的网址。

方法二:通过脚本内的 localRules 进行高级自定义配置(推荐有经验用户)

通过修改脚本源码中的 localRules 变量,您可以实现对特定网站行为的精细化控制。您定义的 localRules 将优先于远程配置,这意味着您可以覆盖远程配置的默认行为,或者为特定网站定义全新的规则。

配置步骤:

  1. 点击油猴扩展图标,然后点击本脚本名称:《全局解除选中、复制与右键限制》进入脚本编辑页面。
  2. 向下滚动,找到脚本顶部(通常在 // ==UserScript== 块下方)的 // --- 用户本地配置区域 ---
  3. 移除示例 localRules 数组外面的 /**/ 注释符号,以启用本地配置功能。 (示例代码通常在注释中) javascript /* const localRules = [ // ... 您的规则 ... ]; */ // 启用后应变为: // const localRules = [ // // ... 您的规则 ... // ];
  4. 根据您想要修改的网站行为,在已启用的 localRules 数组中添加或修改规则对象。
    • 每个规则对象应包含 domain(网站域名的正则表达式)和您想要调整的配置项。
    • 示例:如果您想完全禁用脚本在某个网站(例如 example.com)上的所有解除限制功能,可以添加: javascript { "domain": "\\.example\\.com$", // 匹配 example.com 及其子域名 "unlockOff": true // 在此网站禁用所有解除限制功能 }
    • 示例:如果您在 Bilibili 视频页面想恢复右键菜单,并且避免弹幕被移除,可以添加或修改针对 Bilibili 的规则: javascript { "domain": "bilibili\\.com", // 匹配 Bilibili 域名 "unlockContext": false, // 禁用解除右键菜单限制 "unlockOverlay": false // 如果弹幕问题与遮罩层相关,也可以禁用此项 }
  5. 完成修改后,务必保存脚本(通常按 Ctrl + S 或点击编辑器上方的“保存”按钮)。

💡 如何获取网站域名的正则表达式: 如果您不确定如何编写网站的正则表达式,可以向 AI(例如 ChatGPT、Gemini、Deepseek、通义、豆包、Kimi、文心一言、元宝、智谱 等)提问,例如:“请写一个用于油猴脚本匹配网站 https://www.example.com/path/to/page 的正则表达式。” AI 通常能提供正确的 domain 匹配模式。


📚 JSON 配置字段说明:

以下是规则对象中可以使用的字段及其说明:

  • "domain" (String): 必填。 一个正则表达式字符串,用于匹配需要应用此规则的网站域名。
    • 示例:
      • "\\.example\\.com$" 匹配 example.com 及其所有子域名(如 www.example.com, sub.example.com)。
      • "^test\\.com$" 仅匹配 test.com,不匹配 www.test.com
      • "bilibili\\.com" 匹配所有包含 bilibili.com 的域名。
  • "unlockSelect" (Boolean): 是否解除页面文本选中限制。
    • true:解除选中限制。
    • false:不解除选中限制。
  • "unlockCopy" (Boolean): 是否解除页面文本复制/剪切限制。
    • true:解除复制/剪切限制。
    • false:不解除复制/剪切限制。
  • "unlockContext" (Boolean): 是否解除右键菜单限制(即恢复右键功能)。
    • true:恢复右键菜单。
    • false:不恢复右键菜单(可能仍受网站限制)。
  • "unlockOverlay" (Boolean): 是否尝试移除页面上的常见透明遮罩层(常规版)。
    • true:移除遮罩层。
    • false:不移除遮罩层。
  • "unlockOverlayPro" (Boolean): 是否尝试强力移除页面上的遮罩层及鼠标事件阻碍(强力版)。
    • true:强力移除遮罩层。
    • false:不强力移除遮罩层。
    • 注意:如果 unlockOverlayunlockOverlayPro 同时设置为 trueunlockOverlayPro 将优先。
  • "forceUnlockAll" (Boolean): 是否启用“强力解除所有限制模式”。此模式会非常激进地尝试解除几乎所有限制,包括某些 JavaScript 行为和定时器。
    • true:启用强力模式。
    • false:不启用强力模式。
    • 注意:此模式优先级很高,一旦启用,将忽略其他解除限制设置,并可能影响页面正常功能。
  • "unlockOff" (Boolean): 最高优先级。 是否在此网站上完全禁用本脚本的所有解除限制功能。
    • true:在此网站禁用所有解除限制功能。
    • false:不禁用(允许其他解除限制功能根据设置生效)。
    • 注意:如果此项设置为 true,脚本将立即退出,不会执行任何解除限制操作。

🙏 特别鸣谢:

  • :感谢您使用并认可我的脚本
  • 我 (yui酱):感谢我提出宝贵的想法和持续的测试反馈,使脚本功能日益完善。(厚脸皮)
  • Gemini (Google AI):感谢在脚本功能设计、代码优化和文档编写过程中提供的专业指导和建议。
  • ChatGPT (OpenAI):感谢在部分代码实现和文档润色方面提供的支持和帮助。

📕 小故事:

  • 历时开发大约25个小时,从零到现在的完成品,本脚本起源于第一次投稿的晚上的前一晚的十点钟,在edge打开我的微信公众号文章,结果发现居然不给我选择文本?天理难容!然后又想起来每次上机房课的只能查得到csdn(别问,问就是不够时间翻别人的个人博客),这个崽种也不给我复制文章内容。所以,一气之下开始编写本脚本。
  • 中间尝试过把百度文库撕开,但是失败了我的技术能力不足以支撑我对抗这种大公司(