给 a 标签加 target=_blank,点击后新标签页打开而原页面保留,站外链接普遍这么做,避免用户跳出本站。但这个属性有两个隐患:一是新打开的页面默认能通过 window.opener 操纵原页面(调整地址、伪造内容,即反向钓鱼),补丁是同时写 rel=noopener;二是开太多新标签会打断浏览动线,站内链接绝不要用。
从可用性看,是否新开标签有约定俗成的规则:外部站点、PDF 等文件、需要对比参照的内容新开;站内导航、表单提交留在当前页。一个细节是 target=_blank 的链接光标和普通链接一样,用户无法预判,所以不少站点会给外链加个小图标提示。安全上再多一步也行:rel=noopener noreferrer 兼顾隐私,防止新页面通过 Referer 追踪来源。
<style> .ext::after { content: " ↗"; color: #e78a3e; font-size: 12px; } </style> <p><a href="https://www.example.com" target="_blank" rel="noopener noreferrer" class="ext">安全的外部链接</a></p> <p><a href="https://www.example.org" target="_blank" rel="noopener">也可以只写 noopener</a></p> <p><a href="/about.html">站内链接:当前页打开</a></p> <p><a href="doc.pdf" target="_blank" rel="noopener">PDF 新开</a></p>