我想只从推荐人网址获得域名。引荐网址我大多得到的是http://www.davidj.com/pages/flyer.asp
& http://www.ronniej.com/linkdes.com/?adv=267&loc=897
javascript - 只能从document.referrer获取域名
Whenver我得到参照网址像上面的,我只是想获得域名例如:http://www.davidj.com
我已经使用.split方法试过,但我有麻烦使用它。
我想只从推荐人网址获得域名。引荐网址我大多得到的是http://www.davidj.com/pages/flyer.asp
& http://www.ronniej.com/linkdes.com/?adv=267&loc=897
javascript - 只能从document.referrer获取域名
Whenver我得到参照网址像上面的,我只是想获得域名例如:http://www.davidj.com
我已经使用.split方法试过,但我有麻烦使用它。
var url = "http://www.ronniej.com/linkdes.com/?adv=267&loc=897"
var referrer = url.match(/:\/\/(.[^/]+)/)[1];
if (document.referrer) {
url = document.referrer;
ref = url.match(/:\/\/(.[^/]+)/)[1];
}
链分割,切片和加入:
document.referrer.split("/").slice(0,3).join("/")
您可以在内部使用的URL写入定位元素,并从一个拿到小部分
var anchor = document.createElement("a");
anchor.href = "http://www.davidj.com/pages/flyer.asp";
console.log(anchor.protocol + "//" + anchor.host); // "http://www.davidj.com"
要容易得多然后根据你不必关心分裂或类似的东西......这是非常合乎逻辑的...本地锚点具有相同的属性,如window.location
至少关于URL
编辑:IE 6-9添加默认端口anchor.host //“http://www.davidj.com:80
IE浏览器出现在端口添加到'anchor.host',而不是'location.host'。如果您不需要端口,则可以使用'anchor.hostname'和'location.hostname'。 – 2012-08-23 15:43:23
感谢分享 – 2012-08-23 18:34:26
你可以使用正则表达式:
var matchHost = /^https?:\/\/.*\//;
var match = matchHost.exec('http://www.davidj.com/pages/flyer.asp');
if(match) {
var host = match[0];
console.log(host);
}
if (document.referrer.split('/')[2] == "domain") {
//................
}
@Reminson感谢这..它的作品,但我有一个问题..我已经把代码放在我的域名使用.js文件,基本上它被加载到所有页面上。唯一的问题是这个。每当我直接访问一个页面(没有引用URL)时,我得到以下错误:url.match(/:\/\ /(。[^ /] +)/)[1]; **为空** – Stephen 2012-04-25 15:00:33
我使用的是: var url = unescape(document.referrer); var ref = url.match(/:\/\ /(。[^ /] +)/)[1]; – Stephen 2012-04-25 15:04:11
这是因为'document.referrer'是'undefined',并且没有匹配的url,你应该检查if(document.referrer)是不是“undefined”,然后执行这段代码。 – undefined 2012-04-25 15:05:00