如何使用JavaScript从重定向中获取引用

How to grab referrer from a redirect using JavaScript?

本文关键字:获取 引用 重定向 何使用 JavaScript      更新时间:2023-09-26

我知道我可以使用:

document.referrer;

然而,我有一个单页的网站,和一个重定向集发送该网站的所有其他页面到主页。我希望有一种方法来捕获发起重定向的链接。在本例中是document。引用对象总是空的

所以我想,我需要知道:

  1. 如何在重定向前设置referer参数?
  2. 我如何在主页中使用JavaScript捕获该参数?

您可以通过URL参数传递它。例如,当你点击搜索结果时,谷歌也会做类似的事情;浏览器实际上会转到google.com/url?url=https%3A%2F%2Fthe-site-you-want.com .

所以你可以重定向你的用户到'http://your-site.com/?referrer='+ encodeURIComponent(document.referrer),然后一旦它到达主页,你可以提取该值并运行decodeuriccomponent。

encodeURIComponent是一个使值可以安全地放入URL的方法。decodeuriccomponent是相反的过程。

或者,您可以将其放在散列而不是查询字符串中,如'http://your-site.com/#'+ encodeURIComponent(document.referrer)。一些客户端路由器使用这种方式。尽管这可能会破坏后退按钮除非你花更多时间学习pushState。当Twitter第一次使用twitter.com/#!/foo-bar作为URL方案时,它破坏了许多东西。但它可能对你有用。