F9y4ng / GreasyFork-Scripts

The open source code of this project is used for userscripts (油猴脚本) for desktop browsers, including Font Rendering (Customized) (字体渲染(自用脚本)- Font Rendering.user.js), and Search Engine Assistant (优雅的搜索引擎助手 - Google & Baidu Switcher.user.js), etc.
https://f9y4ng.github.io/GreasyFork-Scripts/
GNU General Public License v3.0
947 stars 46 forks source link

[发现错误] 开启插件的情况下,打开proxmox的虚拟机管理页面,点击任一虚拟机的控制台均报错 #286

Closed Lyn6969 closed 9 months ago

Lyn6969 commented 9 months ago

1. 准备工作(确认预先完成的操作)

2. 描述错误信息(清楚而简洁地描述错误)

开启插件的情况下,打开proxmox的虚拟机管理页面,点击任一虚拟机的控制台均报下面的错误,关闭插件后错误消失。我尝试过点击排除渲染,但是好像无法排除。虚拟机管理页面的地址是:ip+端口形式。 Uncaught TypeError: this.global[def.const.raf] is not a function chrome-extension://ndcooeababalnlpkfedmmbbbgkljhpjf/%E5%AD%97%E4%BD%93%E6%B8%B2%E6%9F%93%EF%BC%88%E8%87%AA%E7%94%A8%E8%84%9A%E6%9C%AC%EF%BC%89.user.js:1849:68 TypeError: this.global[def.const.raf] is not a function at RAF._setTimerMap (chrome-extension://ndcooeababalnlpkfedmmbbbgkljhpjf/%E5%AD%97%E4%BD%93%E6%B8%B2%E6%9F%93%EF%BC%88%E8%87%AA%E7%94%A8%E8%84%9A%E6%9C%AC%EF%BC%89.user.js:1849:68) at RAF._ticking (chrome-extension://ndcooeababalnlpkfedmmbbbgkljhpjf/%E5%AD%97%E4%BD%93%E6%B8%B2%E6%9F%93%EF%BC%88%E8%87%AA%E7%94%A8%E8%84%9A%E6%9C%AC%EF%BC%89.user.js:1845:12) at RAF.setTimeout (chrome-extension://ndcooeababalnlpkfedmmbbbgkljhpjf/%E5%AD%97%E4%BD%93%E6%B8%B2%E6%9F%93%EF%BC%88%E8%87%AA%E7%94%A8%E8%84%9A%E6%9C%AC%EF%BC%89.user.js:1852:19) at chrome-extension://ndcooeababalnlpkfedmmbbbgkljhpjf/%E5%AD%97%E4%BD%93%E6%B8%B2%E6%9F%93%EF%BC%88%E8%87%AA%E7%94%A8%E8%84%9A%E6%9C%AC%EF%BC%89.user.js:2397:29 at HTMLDocument.handlingMouseEvents (chrome-extension://ndcooeababalnlpkfedmmbbbgkljhpjf/%E5%AD%97%E4%BD%93%E6%B8%B2%E6%9F%93%EF%BC%88%E8%87%AA%E7%94%A8%E8%84%9A%E6%9C%AC%EF%BC%89.user.js:6580:109)

3. 错误再现(重现行为步骤,直至复现您遇到的问题)

  1. 打开proxmox的虚拟机管理页面
  2. 点击任一虚拟机的控制台

4. 屏幕截图(如有屏幕截图,请添加以帮助解释您的问题)

image

5. 预期结果(清晰明了地描述您所期待想要什么样的结果)

修复该错误或可以 正常排除该网页。

6. 客户端信息(请在冒号后认真填写您的本地信息)

7. 脚本运行环境排查 (请确认环境条件并填写相关信息)

8. 附加信息(在此处添加您认为有用的其他信息)

F9y4ng commented 9 months ago

由于没有你本地proxmox虚拟机管理页面的环境,所以以下的建议全部基于猜测:

原因猜测

  1. 一般在内部的管理后台系统中,时常会遇到其原始脚本直接改写window上的原始函数或其他原型链上的方法的情况,比如在freshTomato的管理界面就重写了Array原型链上的很多方法,会造成脚本出问题。

  2. 建议你使用Tampermonkey或Violentmonkey等主流脚本管理器测试一下,排除ScriptCat的兼容问题。

解决办法

由于涉及到底层函数的问题,单纯通过脚本排除渲染是无法避免脚本出错的,可通过以下方法排除:

注意,直接修改脚本会造成脚本失去更新,而通过脚本管理器排除站点不会影响脚本更新和使用。

Lyn6969 commented 9 months ago

我用Tampermonkey测试了一下,没有这个问题了,看来是ScriptCat的问题,感谢您的回复!