首页 > 解决方案 > 如何将用户推送到外部(不完整)URL。即 google.com NEXTJS

问题描述

我试图将用户推送到外部 url,但问题是 url 不完整,例如它可能看起来像这样: google.com 如果我在 Nextjs 中使用链接甚至只是一个标签,它只会将用户链接到内部页面. 我希望将用户重定向到外部页面。这是我的代码:

<a href={`${data.link}`}>
    <div className={css.visitLinkContainer}>
        Visit Link
    </div>
</a>

data.link可能有一个不完整的网址,如下所示:google.com. 我该如何解决这个问题?

标签: javascriptnode.jsnext.js

解决方案


默认情况下,浏览器使用相对URL。您可以通过//.

<a href={`//${data.link}`}>Visit Link</a>

如果您的某些 URL 可以包含协议(http[s]),您需要先将其删除。

const href = new URL(data.link).host;
<a href={`//${href}`}>Visit Link</a>

链接到外部域时的其他注意事项 - 如果您链接到外部域并使用,target="_blank"您还应该设置保护用户的隐私并提高站点安全性rel="noreferrer"


推荐阅读