HTML中a标签实现新页面跳转且保留原页面的方法

0 次阅读

在网页开发过程中,经常需要实现点击链接后打开新的页面,同时保留当前页面不被关闭。例如,网站中的外部资源链接、帮助文档、产品详情页等场景,都希望用户查看新内容时还能快速返回原页面。HTML中的a标签本身提供了简单有效的解决方案,通过合理设置target属性即可实现新页面跳转。

a标签实现新页面打开的核心方法

HTML中的超链接主要通过标签实现,默认情况下,点击链接会在当前窗口加载目标页面。如果希望链接在新的浏览器标签页或窗口中打开,需要使用target="_blank"属性。

基本写法如下:

打开新页面

其中:

  • href属性用于指定跳转的目标地址。

  • target="_blank"表示让浏览器在新的标签页中打开链接。

  • 原页面会继续保留,用户可以通过浏览器标签切换回来。

这种方式是前端开发中最常见的新页面跳转方案,适用于博客文章链接、友情链接、第三方平台入口等场景。

target属性常见取值说明

a标签的target属性决定链接打开的位置,常见取值包括:

1. _self(默认值)

当前页面打开

_self表示在当前窗口打开目标页面,也是a标签默认行为。如果不设置target属性,浏览器会自动采用该方式。

2. _blank

新页面打开

_blank会创建新的浏览器标签页打开页面,同时保留原页面。

3. _parent

父窗口打开

主要用于iframe嵌套环境,在父级窗口中加载目标页面。

4. _top

顶层窗口打开

用于跳出所有iframe嵌套,在浏览器最外层窗口加载页面。

在普通网站开发中,最常使用的是_blank_self

新页面跳转时的安全优化

虽然target="_blank"可以方便打开新页面,但也存在一定安全风险。新打开的页面默认可能通过JavaScript中的window.opener访问原页面对象,从而产生潜在的安全问题。

推荐搭配rel="noopener noreferrer"属性:


  访问外部网站

作用如下:

  • noopener:阻止新页面通过window.opener访问原页面,提高安全性。

  • noreferrer:禁止浏览器向目标页面发送来源信息,同时部分浏览器也会启用noopener效果。

对于跳转到第三方网站的链接,建议始终添加该属性。

使用JavaScript实现新窗口打开

除了HTML原生方式,也可以通过JavaScript控制页面跳转。

示例:

打开页面

window.open()第一个参数是目标地址,第二个参数用于指定打开方式。

不过,在实际开发中,优先推荐使用a标签,因为:

  • 更符合HTML语义化标准。

  • 搜索引擎可以正常识别链接。

  • 用户可以使用鼠标右键、新标签打开等浏览器功能。

  • 对无障碍访问更加友好。

JavaScript打开窗口通常用于需要动态计算地址、用户交互验证等特殊场景。

新页面跳转在SEO中的注意事项

合理使用新页面跳转方式,对网站SEO优化也有一定帮助。

保持链接结构清晰

搜索引擎能够更好地理解a标签中的链接关系,因此应该使用真实URL:

文章详情

避免大量依赖JavaScript生成链接,否则可能影响搜索引擎抓取。

外部链接合理添加属性

如果链接指向不受控制的外部网站,可以使用:


外部资源

其中:

  • nofollow告诉搜索引擎不要传递链接权重。

  • noopener noreferrer提升安全性和隐私保护。

是否添加nofollow,需要根据网站SEO策略决定。

移动端中新页面打开的表现

在手机浏览器中,target="_blank"通常会打开新的浏览器标签页,但具体表现取决于浏览器设置。

例如:


查看商品详情

用户点击后可以查看商品详情,同时保留原页面。

不过,移动端用户操作空间有限,如果大量使用新窗口打开,可能增加标签管理负担。因此需要根据实际用户体验进行设计。

常见问题及解决方法

点击链接仍然覆盖当前页面

如果设置了:

链接

没有添加target="_blank"时,浏览器默认会覆盖当前页面。

解决方式:


链接

新页面打开后无法访问原页面

通常情况下,原页面并没有关闭,只是浏览器切换到了新标签页。用户可以通过浏览器标签栏返回原页面。

新窗口被浏览器拦截

部分浏览器会限制JavaScript主动创建窗口,但通过用户点击触发的a标签跳转通常不会被拦截。

例如:


点击访问

属于用户主动行为,一般可以正常打开。

实际开发中的推荐写法

对于普通内部页面:

关于我们

保持当前页面跳转即可。

对于外部网站:


访问外部资源

对于需要新窗口展示的功能页面:


在线预览