最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
HTML中链接在新窗口打开的实现方法
时间:2026-06-08 11:11:47 编辑:袖梨 来源:一聚教程网
最直接的方法是在<a>标签中添加target="_blank"属性,且必须搭配rel="noopener"以阻断window.opener安全风险并提升性能。
使用 target="_blank" 是最直接的方法
HTML 中让链接在新窗口(或新标签页)打开,核心就是给 <a> 标签加上 target="_blank" 属性。浏览器会据此触发新上下文打开行为。
常见写法示例:
<a href="https://example.com" target="_blank">访问示例网站</a>
注意:target="_blank" 在所有现代浏览器中都有效,但默认行为可能因浏览器设置略有差异(比如有的开新标签页,有的开新窗口),用户无法强制指定“一定是窗口”还是“一定是标签页”。
target="_blank" 必须搭配 rel="noopener"
不加 rel 属性存在安全风险:新页面可通过 window.opener 访问原页面的 window 对象,可能被用于钓鱼或性能降级攻击。
立即学习“前端免费学习笔记(深入)”;
正确做法是始终配对使用:
<a href="https://example.com" target="_blank" rel="noopener">安全的新窗口链接</a>
-
rel="noopener"阻断window.opener引用,且提升新页面性能(避免共享进程) - 如果还需防止新页面通过
document.referrer泄露来源,可加rel="noreferrer"(它隐含noopener) - 不要只写
rel="nofollow"—— 它和打开方式无关,只影响 SEO 爬虫
为什么 target="_blank" 有时没反应?
常见失效原因不是语法错,而是环境或配置干扰:
- 浏览器启用了“弹出窗口拦截器”,且链接是 JS 动态生成、无用户手势触发(比如在
setTimeout里调用click()) - 链接在 iframe 中,而父页面设置了
sandbox属性且未包含allow-popups - 某些 CMS 或富文本编辑器自动过滤了
target属性(尤其在用户输入内容中) - 写了
target="_blank"但忘了写href,此时标签不被视为可点击链接
想控制新窗口尺寸或位置?HTML 原生做不到
target="_blank" 不接受任何尺寸、位置参数。所谓 target="width=500,height=400" 是无效的,会被忽略。
如真有定制窗口需求(极少见),必须用 JavaScript 的 window.open():
window.open('https://example.com', '_blank', 'width=600,height=400,noopener');
但要注意:window.open() 在多数浏览器中会被拦截,除非它由用户明确触发(如 onclick 事件内调用);且移动端基本无视尺寸参数。
绝大多数场景下,老老实实用带 rel="noopener" 的 target="_blank" 就够了——既安全,又可靠,还符合语义。
相关文章
- 金铲铲之战S10心之钢EZ九五如何玩 S10心之钢EZ九五玩法攻略 06-08
- 金铲铲之战s10赛季KDA法师萨勒芬妮阵容如何搭配 06-08
- 金铲铲之战s10飞雷神阵容怎么搭配 s10飞雷神阵容搭配攻略 06-08
- 《金铲铲之战》S10五杀天使阵容推荐 06-08
- 金铲铲之战S10小小英雄升级方法 06-08
- Cursor收费与免费权限说明:功能差异与使用限制 06-08