在HTML中,我们可以通过给<a>标签添加target属性来控制链接的打开方式,让链接在新窗口或者新标签页中打开是网页开发中非常常见的需求,掌握正确的设置方法能避免很多跳转相关的问题。

target属性的基本用法
target属性用于指定链接跳转时目标窗口的名称,当我们需要让链接在新窗口打开时,只需要将target的值设置为_blank即可,注意这里的前缀下划线不能省略,很多初学者会误写成blank导致设置不生效。
基础的设置示例如下:
<!-- 正确设置,链接会在新窗口打开 --> <a href="https://ipipp.com" target="_blank">点击跳转到示例网站</a> <!-- 错误设置,target值为blank不会生效 --> <a href="https://ipipp.com" target="blank">点击跳转到示例网站</a>
不同场景下的设置方式
单个链接设置
如果只需要给某一个特定的链接设置新窗口打开,直接在对应的<a>标签上添加target="_blank"即可,这种方式不会影响页面上的其他链接。
<p>普通链接:<a href="/index.html">首页</a></p> <p>新窗口打开链接:<a href="/detail.html" target="_blank">文章详情</a></p>
批量设置页面所有链接
如果希望当前页面所有的链接都默认在新窗口打开,不需要逐个给<a>标签添加属性,可以使用<base>标签统一设置,放在<head>标签内部即可。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>示例页面</title>
<!-- 设置页面所有链接默认新窗口打开 -->
<base target="_blank">
</head>
<body>
<a href="/page1.html">页面1</a>
<a href="/page2.html">页面2</a>
<a href="https://ipipp.com">外部链接</a>
</body>
</html>注意事项
- target的值
_blank必须带下划线,写成blank不会生效,浏览器会将其识别为自定义窗口名称,而不是新窗口指令。 - 使用<base>标签设置全局target后,如果某个链接需要当前窗口打开,可以单独给该链接设置target="_self"覆盖全局配置。
- 如果是内部链接跳转,建议根据实际需求选择打开方式,避免所有链接都新窗口打开影响用户体验。
- 部分浏览器会对新窗口打开的链接做限制,比如拦截弹窗类的自动打开,手动点击的链接一般不受影响。
常见问题解答
问:为什么我设置了target="blank"还是当前窗口打开?
答:因为正确的取值是_blank,缺少下划线的话浏览器不会识别为新窗口打开指令,补上下划线即可。
问:能不能同时设置部分链接新窗口,部分当前窗口?
答:可以,先通过<base>设置全局默认,再给需要当前窗口打开的链接单独添加target="_self"属性,或者反过来单独给需要新窗口的链接加target="_blank"。
// 也可以通过JavaScript动态给链接添加target属性
// 给所有class为new-window的链接设置新窗口打开
document.querySelectorAll('a.new-window').forEach(link => {
link.target = '_blank';
});