最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
HTML中a锚点链接实现及a标签target属性取值含义
时间:2026-06-16 09:41:47 编辑:袖梨 来源:一聚教程网
target属性用于指定链接打开位置,非锚点跳转;锚点靠href="#id"实现。_blank需配rel="noopener noreferrer"防安全风险,_self/_parent/_top适用iframe场景,自定义名称如"mywin"可复用窗口但行为不统一。
target 属性不是用来实现锚点跳转的,它是控制链接“在哪里打开”的开关。锚点跳转靠的是 href 值以 # 开头(比如 href="#section2"),而 target 决定这个跳转发生在当前页、新页,还是某个 iframe 里。
target="_blank" 必须配 rel="noopener noreferrer"
单独写 target="_blank" 是危险操作,现代浏览器不会阻止它,但会留出攻击面:
- 不加
rel="noopener":新页面能通过window.opener.location把你原来的页面重定向到钓鱼页 - 只加
noopener不加noreferrer:HTTP 请求头仍带Referer,泄露来源 URL - 写成
target="blank"或target="_new":这些都不是标准值,浏览器当无效字符串处理,退化为_self
正确写法只有这一种:<a href="https://example.com" target="_blank" rel="noopener noreferrer">External Link</a>
_self、_parent、_top 这三个值现在还用得上吗
用得上,但场景很窄:
立即学习“前端免费学习笔记(深入)”;
-
_self是默认行为,可省略;显式写出仅用于强调或覆盖父级base标签的target -
_parent和_top只在嵌套<iframe>的老式布局中生效;HTML5 已废弃<frameset>,所以这两个值基本只出现在遗留系统或 iframe 微前端中 - 如果页面没嵌 iframe,
_parent和_top行为等同于_self
能不能自定义 target 名称,比如 target="mywin"
可以,但要小心预期和现实的差距:
- 浏览器会尝试查找名为
mywin的<iframe>或已打开的窗口;找不到就新建一个,名字叫mywin - 后续所有
target="mywin"的链接都会复用这个窗口/标签页——这点常被误认为“分组打开”,其实只是窗口复用 - 该行为未被 HTML Living Standard 明确保证,不同浏览器对窗口复用策略有差异(比如 Chrome 通常复用标签页,Safari 可能新开)
- 现代单页应用(SPA)中几乎不用,因为路由由 JS 控制,不再依赖窗口命名上下文
真正容易被忽略的是:哪怕你只写了一个 target="_blank" 却漏了 rel,CI/CD 流水线里的 Lighthouse 或 axe 扫描工具就会报安全缺陷;这不是“建议”,而是上线前的硬性拦截项。
相关文章
- 伊莫星骑士支线任务如何完成 06-16
- 逆战未来深渊狂潮怎么玩 06-16
- 银河灰暗角落结局彩蛋触发方法分享 06-16
- 异能重组护盾流玩法攻略介绍说明 06-16
- 别拽了烤串师傅气味炸弹成就解锁攻略 06-16
- 银河灰暗角落暴击流玩法构筑分享 06-16