Skip to content

跳过中转页面

外链提示页面

平时在逛掘金少数派等网站的时候,经常有跳转外链的场景。此时基本都会被中转到一个官方提供的提示页面。

浏览被中断,很影响体验。但是平台根据法规又需要对外链进行提示,尽到告知用户的义务。这算是中国特色吧!

互联网的本质就是自由穿梭,一个 A 标签就可以让你在整个互联网翱翔。现在你每次起飞的时候都被摁住强迫你阅读一次「免责声明」,多少是有点恼火的。

上有政策 下有对策

我开发了一款浏览器插件chrome-redirect-skipper 它可以无感跳过这些页面。

安装地址

它利用了浏览器提供的 onBeforeNavigate 勾子,当判断到进行跳转的页面是「类中转页」时,就会从 url 中截取目标地址,直接进行跳转。

插件内部会维护一份配置表,只要被收录的网站,都可以被识别到,然后进行自动跳转。

js
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)。