![]()
全球67%的人用Chrome上网,但没人能一键清净看文章。Safari有,Firefox有,连Edge都抄了——Chrome用户还在手动关广告、叉弹窗、躲推荐流。
一位前端工程师的周末项目,正在补上这个缺口。
「我只是想读文章,就这么难?」
打开一篇长文,正文被侧边栏广告、导航菜单、邮件订阅弹窗、「猜你喜欢」组件团团围住。这是Chrome用户的日常。
Safari内置阅读模式。Firefox用Mozilla自己的Readability.js,已稳定运行多年。Chrome呢?chrome://flags里埋了个实验性功能,不稳定、功能残缺、不敢日用。
开发者Dustin Goodman的解决方案叫ZenRead。一键去广告、去 clutter(杂乱元素),支持无障碍阅读、仿生速读、文本转语音,还能针对不同站点定制内容提取规则。
周末项目变成每日必用工具。
不造轮子,但得会拧螺丝
阅读模式的核心是内容提取:识别页面哪部分是正文,其余扔掉。Goodman直接用了@mozilla/readability,Firefox同款底层库。
代码看起来简洁,有两个坑踩过的人才知道。
必须克隆文档再处理。Readability解析时会修改DOM。传真实文档进去,页面直接崩掉。doc.cloneNode(true)造个安全副本,是保命操作。
输出必须消毒。提取的HTML来自不可信源。DOMPurify过滤掉
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.