Greasy Fork

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

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

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

作者
yui酱
评分
0 0 0
版本
1.4.1
创建于
2025-05-08
更新于
2025-05-09
大小
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 等)提问,例如:“请写一个用于油猴脚本匹配网站 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(别问,问就是不够时间翻别人的个人博客),这个崽种也不给我复制文章内容。所以,一气之下开始编写本脚本。
  • 中间尝试过把百度文库撕开,但是失败了我的技术能力不足以支撑我对抗这种大公司(