如何禁用Chrome等浏览器的Reader Mode 阻止用户复制站点内容
禁用Chrome/Edge等浏览器阅读模式的实现方案
- 主流Chromium系浏览器的阅读模式核心逻辑是通过识别页面语义化标签、内容占比、文本密度来判定是否支持进入阅读模式,只要破坏其判定规则即可禁用站点的阅读模式适配,以下是可落地的方案:
- 避免使用高识别度语义化标签
不要将正文内容统一放在<article>、<section>、<main>这类阅读器优先抓取的语义化标签中,若需保留语义化标签用于SEO,可添加role="presentation"属性覆盖其语义属性,示例代码:<article role="presentation">正文内容</article> - 拆分主内容DOM结构
将长正文拆分为多个独立普通<div>节点,穿插添加样式为.hidden-node { display: none; }的无意义空节点,打乱阅读器的内容提取逻辑,这类隐藏节点不会影响普通用户的浏览体验。 - 动态渲染核心内容
将正文内容通过JS异步请求后动态插入DOM,阅读模式默认仅抓取页面首次加载的静态HTML内容,动态插入的文本通常不会被阅读器识别。 - 添加低权重干扰文本
在正文段落之间插入样式设置为opacity: 0; font-size: 0; position: absolute; left: -9999px的隐藏干扰文本,当这类干扰内容占总文本比例达到阈值后,浏览器会判定当前页面不符合阅读模式的适配要求,不会提供阅读模式入口。
以上方案仅能拦截浏览器自动触发的阅读模式入口,无法阻止用户手动强制开启阅读模式或使用第三方内容提取插件,可满足提升内容盗用成本的需求。
内容的提问来源于stack exchange,提问作者user2335065
相关产品推荐
相关产品推荐

