![2c5beb2ee7638e79f310fb8ec9b9f03c.png](https://img-blog.csdnimg.cn/img_convert/2c5beb2ee7638e79f310fb8ec9b9f03c.png)
某一天,有个小伙伴找我给他修电脑解决一个问题,说他的Chrome打开某些网站,字体变得很奇怪。可能是最近改了什么设置,但是就是想不起来。
原字体:
![8b623ae457cdaf58acb31179b6f2c7c8.png](https://img-blog.csdnimg.cn/img_convert/8b623ae457cdaf58acb31179b6f2c7c8.png)
检查了一番过后发现在这个系统上的语言优先顺序是英文→日文→中文,如果默认字体不能很好地兼容中日韩汉字,就会出现这种情况。在中文环境下使用了日文字体来显示汉字,当碰到日文中没有的汉字时,视觉效果上的差异就更加明显了。
然后他反手就安利了TamperMonkey,一款Chrome插件。这款插件可以修改浏览器发出去的请求和接收到的响应,希望我帮他写一段CSS把Baidu的默认字体改掉。一瞬惊愕后上手了这个插件,改了个字体果然舒服很多。
新字体:
![e4d323bbd2e2bf1c6a7399f86f93153b.png](https://img-blog.csdnimg.cn/img_convert/e4d323bbd2e2bf1c6a7399f86f93153b.png)
TamperMonkey看起来界面更土味一些,不过没关系,还有另一款插件——Requestly,也能够实现一模一样的功能。
在Chrome插件商店里搜索Requestly,安装后点击右上角多出的Requestly图标,点“Open App”打开主界面,功能一览无余。
![5ed110b352ae7a9c6ff348a3cd80d516.png](https://img-blog.csdnimg.cn/img_convert/5ed110b352ae7a9c6ff348a3cd80d516.png)
可以看到Requestly支持在浏览器中完成以下功能:
- 重定向网络请求
- 取消网络请求
- 替换URL中的部分内容,比如hostname和querystring
- 修改网络请求或响应的头部
- 增加或删除请求中的查询参数
- 插入一段JS或CSS
- 重载UserAgent以模拟不同设备
利用这款利器,简直能在浏览器里为所欲为!比如下面这个界面。从入职以来每天都在这个界面上输入Administrator按回车。作为消灭重复劳动大军中的一员,自然不能放过一点点小细节。Administrator因为没有密码,Chrome并不会弹出记住密码的窗口,也就没有记住用户名。即便记住账户,也需要手动点击一下登录按钮。
![22867edbd92edbfd01a21270c5b2ab7f.png](https://img-blog.csdnimg.cn/img_convert/22867edbd92edbfd01a21270c5b2ab7f.png)
现在用Requestly就可以实现自动登录MicroStrategy Web。打开Requestly主界面,选择Insert Scripts,进入下面这个界面。
![e12938ce91f4dd93267edeabc68c1925.png](https://img-blog.csdnimg.cn/img_convert/e12938ce91f4dd93267edeabc68c1925.png)
按网络请求的URL匹配,如果是http://vm.takashiro.cn:8080/MicroStrategy/servlet/mstrWeb,就插入以下代码:
![4157d0152f39faa201a1798dac53c62d.png](https://img-blog.csdnimg.cn/img_convert/4157d0152f39faa201a1798dac53c62d.png)
保存规则,打开开关。以后每次进入登录界面,它就会自动输入Administrator然后点击登录按钮。完美!
利用这个插件,甚至可以把浏览器玩坏。比如把某个网站注入一段:
![b6e9666df4103580e5d921051d4874ea.png](https://img-blog.csdnimg.cn/img_convert/b6e9666df4103580e5d921051d4874ea.png)
然后度娘就失去了色彩——
![713832c6c87e4ed3e1ed6687ab85b26e.png](https://img-blog.csdnimg.cn/img_convert/713832c6c87e4ed3e1ed6687ab85b26e.png)
或者看某个网站的广告不爽,屏蔽掉——
![27629fe93b8fe468dff929724d88467e.png](https://img-blog.csdnimg.cn/img_convert/27629fe93b8fe468dff929724d88467e.png)
找到腾讯主页下的广告位置对应的CSS class,看到它非常简单粗暴,就是.qq-gg(QQ广告),添加一段:
![2cee22825a55d5b566b120f4ead03857.png](https://img-blog.csdnimg.cn/img_convert/2cee22825a55d5b566b120f4ead03857.png)
再次打开腾讯首页,广告就被屏蔽掉了。如果有一个开源社区互相分享这些Requestly 脚本,我们就可以手动实现Adblock的功能。
![d5ed32134701595431ba6177ce9f3c5a.png](https://img-blog.csdnimg.cn/img_convert/d5ed32134701595431ba6177ce9f3c5a.png)
这两款插件都老得不行,自然有人已经想到了。GreasyFork就是一个互相分享TamperMonkey脚本的网站。打开GreasyFork的主页,你就能看到类似“百度网盘超级助手(全速下载)”“全网VIP视频去广告”“哔哩哔哩港澳台(去除地域限制)”等等邪物。这些网站都不在后端做限制,以为GUI上不暴露出来就没事了吗……
以上均属错误示范,我们还是要用Requestly来做正当的事!(正经脸)比如Web前端开发有时为了调试方便需要跨域,利用Requestly给HTTP Response加上Allow-Control-Allow-Origin: *,快速简单,比修改Tomcat或者nginx的配置更为方便。
Requestly还能开发出各种各样的玩法,原理上似乎是把Chrome的部分插件接口直接开放出来了。这样的插件都有,足可见Chrome的开放性。这两个插件还有Firefox和Edge的版本。绕过自制Chrome插件的所有麻烦,胡作非为的利器触手可及。