如何使用JavaScript获取引荐来源的域/主机名?

Kel*_*tex 63 javascript

我知道我可以通过以下方式获取当前页面的主机名:

var myhostname = location.hostname;
Run Code Online (Sandbox Code Playgroud)

但是如何获取引荐来源的主机名?我可以通过推荐人获得推荐人

var referrer = document.referrer;
Run Code Online (Sandbox Code Playgroud)

但不幸的是document.referrer.hostname,JavaScript中没有.我怎样才能获得这个价值?

这有用的一个示例是,如果有人点击google.com上的链接.我希望能够从引荐来源(而不是页面和查询字符串)中检索google.com.

Ger*_*der 48

这样做:

document.referrer.split('/')[2];
Run Code Online (Sandbox Code Playgroud)

例.


小智 39

function parseURL(url) {
    var a=document.createElement('a');
    a.href=url;
    return a.hostname;
}
Run Code Online (Sandbox Code Playgroud)

这是一个相对古老的问题,但这可能对任何追随者有所帮助.

  • 美妙使用内置浏览器功能 (3认同)

Lou*_*nco 28

通过解析它. document.referrer.split( '/' );会让你走近 或者看看这个

http://blog.stevenlevithan.com/archives/parseuri

如果引用来自浏览器,它将是理智的 - 但以防万一你想要更强大的解析.

  • 如果你不想重新发明解析轮:使用`var a = document.createElement('a')`创建一个锚元素,然后设置`a.href = document.referrer`,然后简单地读出` a.hostname.或者,甚至更简单(如果你使用NPM),使用[ulocation](https://npmjs.com/package/ulocation):`npm install -S ulocation`,`var Location = require(' ulocation')`并使用`Location(document.referrer).hostname`.*免责声明:我是该套餐的作者* (3认同)

chi*_*t24 12

你可以用var referrer = new URL(document.referrer).hostname.

请参阅https://developer.mozilla.org/en-US/docs/Web/API/URL.URL.

  • 很干净但要注意IE目前不支持它https://developer.mozilla.org/en-US/docs/Web/API/URL.URL#Browser_compatibility (7认同)