我知道我可以通过以下方式获取当前页面的主机名:
var myhostname = location.hostname;
但是如何获取引荐来源者的主机名?我可以通过
获得推荐人var referrer = document.referrer;
但遗憾的是JavaScript中没有document.referrer.hostname
。我怎样才能得到这个值?
这有用的一个示例是,如果有人点击了google.com上的链接。我希望能够从引荐来源(而不是页面和查询字符串)中检索google.com。
答案 0 :(得分:47)
答案 1 :(得分:38)
function parseURL(url) {
var a=document.createElement('a');
a.href=url;
return a.hostname;
}
这是一个相对古老的问题,不过这可能有助于任何粉丝。
答案 2 :(得分:27)
解析它。 document.referrer.split( '/' );
会让你亲近。或者看看这个
http://blog.stevenlevithan.com/archives/parseuri
如果引用来自浏览器,它将是理智的 - 但以防万一你需要更强大的解析。
答案 3 :(得分:12)
您可以使用var referrer = new URL(document.referrer).hostname
。
请参阅https://developer.mozilla.org/en-US/docs/Web/API/URL.URL。
答案 4 :(得分:1)
您可以使用正则表达式来提取此数据。
string.match(/^http([s]?)://([a-zA-Z0-9-_\.]+)(:[0-9]+)?/);
答案 5 :(得分:1)
它包含协议,但document.origin
将起作用。它通过Origin标头工作,它没有包含路径信息。
答案 6 :(得分:0)
您可以使用此功能获取域名。
function getDomain(url) {
if (url) {
var match = /(?:https?:\/\/)?(?:\w+:\/)?[^:?#\/\s]*?([^.\s]+\.(?:[a-z]{2,}|co\.uk|org\.uk|ac\.uk|org\.au|com\.au))(?:[:?#\/]|$)/gi
.exec(url);
return match ? match[1] : null;
} else
return null;
}