跳过中转页面
外链提示页面
平时在逛掘金和少数派等网站的时候,经常有跳转外链的场景。此时基本都会被中转到一个官方提供的提示页面。
浏览被中断,很影响体验。但是平台根据法规又需要对外链进行提示,尽到告知用户的义务。这算是中国特色吧!
互联网的本质就是自由穿梭,一个 A 标签就可以让你在整个互联网翱翔。现在你每次起飞的时候都被摁住强迫你阅读一次「免责声明」,多少是有点恼火的。
上有政策 下有对策
我开发了一款浏览器插件chrome-redirect-skipper 它可以无感跳过这些页面。
它利用了浏览器提供的 onBeforeNavigate
勾子,当判断到进行跳转的页面是「类中转页」时,就会从 url
中截取目标地址,直接进行跳转。
插件内部会维护一份配置表,只要被收录的网站,都可以被识别到,然后进行自动跳转。
export default [
{
hostname: 'link.juejin.cn',
title: '掘金',
param: 'target',
example: 'https://link.juejin.cn/?target=https%3A%2F%2Fcocos.com',
},
{
hostname: 'sspai.com',
pathname: '/link',
title: '少数派',
param: 'target',
example: 'https://sspai.com/link?target=https%3A%2F%2Fcocos.com',
},
{
hostname: 'link.zhihu.com',
title: '知乎',
param: 'target',
example: 'https://link.zhihu.com/?target=https%3A%2F%2Fcocos.com',
},
];
插件工作的流程图如下:
局部便利 vs 全局多余
有的功能是当你聚焦在功能本身的时候,会觉得它有需要。但是当你把焦点拉远,只看全局的时候,又会发现它是多余的。
比如 2.0 设计之初,我也打算在浏览器的右键菜单里注入一个选项 添加到跳过列表,点击之后可以快速的弹出操作面板,用来新增跳过名单。
如果只看这个功能,是觉得挺好的。当用户发现一个未被拦截的中转页面时,右键就可以立刻添加。
但是! 我们在平时浏览网页的大多数情况下,会有几次需要用到这个「便利」的菜单呢? 常见的中转站已经由插件收录到数据库了,只有少数情况下需要用户添加。而且在这样的少数场景下,用户点击插件图标就可以弹出操作面板。
也就是这个注入的右键菜单,只有极少情况是便利的,大多数情况是碍眼的。
于是我就将该功能删除了。
如果浏览器插件都这么随意注入右键菜单,那么很快我们的右键就要泛滥了。我不想成为它泛滥的原因之一。
保持简单
对于这样一个功能简单的小插件,我是不希望它的开发工程有很多复杂性。所以一切都是原生开发,没有引入任何框架和库,保持最简明的项目结构,没有任何 npm 包的依赖。
基本做到任何时候回头看,都可以快速理解业务代码(甚至不用 npm install)。