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