前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >React技巧之设置target=_blank

React技巧之设置target=_blank

作者头像
chuckQu
发布2022-08-19 15:32:47
8010
发布2022-08-19 15:32:47
举报
文章被收录于专栏:前端F2E

原文链接:https://bobbyhadz.com/blog/react-set-target-blank[1]

作者:Borislav Hadzhiev[2]

正文从这开始~

设置target=_blank

在React中将元素的target属性设置为_blank ,可以使用锚元素并设置rel属性。比如说,<a href="<https://example.com>" target="_blank" rel="noopener noreferrer">_blank 值意味着资源在新的标签页被加载。

代码语言:javascript
复制
export default function App() {
  const openInNewTab = url => {
    // 👇️ setting target to _blank with window.open
    window.open(url, '_blank', 'noopener,noreferrer');
  };

  return (
    <div>
      {/* 👇️ setting target to _blank on a link */}
      <a href="<https://example.com>" target="_blank" rel="noopener noreferrer">
        Example.com
      </a>

      <hr />

      <button onClick={() => openInNewTab('<https://example.com>')}>
        Example.com
      </button>
    </div>
  );
}

需要注意的是,当设置target属性为_blank时,需要将rel属性设置为noopener noreferrer

rel属性的noopener 关键字指示浏览器导航到目标资源,而不授予新的浏览上下文对打开它的文档的访问权。

a标签元素的target属性被设置为_blank时,资源在新的标签页被加载。

代码语言:javascript
复制
<a href="<https://example.com>" target="_blank" rel="noopener noreferrer">
  Example.com
</a>

或者说,当使用window.open() 函数时,你可以将target属性设置为_blank

代码语言:javascript
复制
export default function App() {
  const openInNewTab = url => {
    // 👇️ setting target to _blank with window.open
    window.open(url, '_blank', 'noopener,noreferrer');
  };

  return (
    <div>
      <button onClick={() => openInNewTab('<https://example.com>')}>
        Example.com
      </button>
    </div>
  );
}

window对象上的open()方法加载指定的资源到新的或者已存在的标签页。

我们将以下3个参数传递给open()方法:

名称

描述

url

被加载的资源的url或者路径

target

资源被加载到的浏览器上下文的名称。_blank 属性值意味着资源在新的标签页被加载。

windowFeatures

一个用逗号分隔的窗口特征列表。在例子中用于增加安全性。

当用户点击button按钮时,我们为onClick属性传递的函数将被执行,并且指定页将会在新标签页加载。

总结

通过设置target属性为_blank,我们在新标签页中打开了资源。一共介绍了两种方式:一种是为a标签元素设置属性,另一种是为window.open()方法传入参数。

参考资料

[1]

https://bobbyhadz.com/blog/react-set-target-blank: https://bobbyhadz.com/blog/react-set-target-blank

[2]

Borislav Hadzhiev: https://bobbyhadz.com/about

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端F2E 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 设置target=_blank
  • 总结
    • 参考资料
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档