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
1.02k stars 48 forks source link

兼容性问题:金山文档在线版 #91

Closed LuoZIren closed 2 years ago

LuoZIren commented 2 years ago

具体问题:使用了字体渲染的在线金山文档页面,文档中的图片会疯狂闪动,作者可以参考以下这个界面,如果能修复一下,万分感谢♥

F9y4ng commented 2 years ago

深入测试了一下,不登录账户进入编辑状态是无法复现问题的。

经过测试发现:文档中的图片疯狂闪动,是由于文档编辑器的监控函数与脚本中对粗体字体描边的样式修正函数互相触发所引发的。(仅Blink内核浏览器需要描边样式错误修正,所以使用chrome会出现此问题。)

问题复现:

Chrome浏览器:在正文区域选取任意文字加粗即触发脚本冲突。(仅在线文档复现问题,WPS文档无此问题)

解决办法:

  1. 关闭字体渲染功能:在金山文档网站中,在脚本菜单中关闭字体渲染功能,以保证此类工具型网站的功能完整性。
  2. 使用字体渲染功能:依然使用字体渲染其他功能,但将字体描边功能关闭(配置为0),避免与编辑器脚本产生冲突。

建议:

在工具型网站(如在线文档、在线编辑器、在线IDE等等)内,尽量不要使用脚本渲染功能,原因如下:

  1. 文档编辑类也有字体设置功能,会造成文档编辑器内字体设置无效;
  2. 字体缩放会造成基于canvas、svg的编辑器造成坐标偏移,而无法正常编辑。
  3. 一些其他未知的情况,或编辑器脚本与字体渲染脚本冲突。
F9y4ng commented 2 years ago

本周更新版本 v2022.06.18.1 已针对工具型网站(如在线文档、在线编辑器、在线IDE等)增添了“文字粗体附加描边时样式错误的修正开关”,将脚本原始自动修正样式错误变更为手动修正控制。

如在工具型网站遇到图片闪烁、页面明显卡顿等情况,可打开脚本设置界面(Alt+P),找到 粗体修正 复选框,将 去掉,保存为站点数据独享即可。

settingUI