Greasy Fork

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

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

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

作者
yui酱
评分
0 0 0
版本
1.4.2
创建于
2025-05-08
更新于
2025-05-10
大小
28.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 的域名。
  • "comment" (String): 可选。用于在 JSON 中添加注释的字段,脚本会忽略包含此字段的对象,不将其作为规则处理。
  • "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,脚本将立即退出,不会执行任何解除限制操作。

🔍 遇到问题或需要适配的网站?请给我反馈!

本脚本已尽力适配常见限制,但互联网网站千变万化,总会有些地方可能无法正常工作,或者与网站原有功能冲突(例如部分视频站点的右键菜单或弹幕)。

如果您在使用过程中遇到以下情况,恳请您花一点时间将问题反馈给我:

  • 在某个网站上,脚本未能解除您预期的限制。
  • 在某个网站上,脚本的某个功能(如移除遮罩层)导致了网站原有功能异常。
  • 您有希望脚本适配或优化的新网站。

您的反馈对我持续改进脚本至关重要!

反馈途径:

  1. Greasy Fork 评论区: 在脚本页面下方留言反馈。
  2. GitHub Issues: 如果您熟悉 GitHub,可以在项目的 Issues 页面提交问题(推荐,便于跟踪和交流)。项目地址:[请在这里替换为您的 GitHub 仓库 Issues 页面链接]

反馈格式建议 (请尽量提供以下信息):

请在反馈中包含以下信息,以便我更快地定位问题:

  • 网站 URL: 请提供完整的页面链接,例如 https://www.example.com/some/page
  • 问题描述: 详细说明遇到的具体问题,例如“文本无法选中”、“右键菜单打不开”、“登录弹窗移不掉”、“点击某个按钮没反应”等。
  • 期望效果/冲突功能: 说明您希望脚本在该网站上实现什么功能,或者认为脚本的哪个功能与网站冲突了(例如“希望解除选中”、“发现‘强力遮罩’导致页面布局错乱”)。
  • 浏览器及版本: 例如 Chrome v120, Firefox v115。
  • Tampermonkey 版本: 例如 Tampermonkey v4.19。
  • 脚本版本: 您当前安装的脚本版本号(例如 v1.4.5)。
  • 是否使用了本地配置 (localRules): 是/否。如果使用了,并且该网站使用了本地规则,最好能提供该网站对应的本地规则代码段。

例如:

网站 URL: https://www.some-problem-site.net/article/123
问题描述: 文章内容无法复制
期望效果/冲突功能: 希望可以正常复制文本
浏览器及版本: Edge v124
Tampermonkey 版本: v4.20
脚本版本: v1.4.5
是否使用了本地配置: 否

🙏 特别鸣谢:

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

📕 小故事:

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