我需要使用document.referrer
来获取之前的URL,同时还需要能够获取URL的各个部分,比如:
window.location.protocol
window.location.host
window.location.pathname
但是我无法弄清如何使用document.referrer
实现它。 有人有什么想法吗?
我需要使用document.referrer
来获取之前的URL,同时还需要能够获取URL的各个部分,比如:
window.location.protocol
window.location.host
window.location.pathname
但是我无法弄清如何使用document.referrer
实现它。 有人有什么想法吗?
您可以使用引用者作为其url创建一个a元素。
a元素(带有href的)可以像位置对象一样运行
var a=document.createElement('a');
a.href=document.referrer;
alert([a.protocol,a.host,a.pathname].join('\n'));
a='';
关于document.referrer
,没有与window.location
等价的方法,因此您唯一的选择是分解字符串本身。您可以编写一个正则表达式来实现这一点,或者依靠一系列字符串拆分:
var parts = document.referrer.split('://')[1].split('/');
var protocol = document.referrer.split('://')[0];
var host = parts[0];
var pathName = parts.slice(1).join('/');
http://example.com/://foobar
是一个有效的URI。你的“parts”可能缺少了一些东西... - rodneyrehm
window.location
是一个对象,具有方便实用的方法来获取不同的部分。另一方面,document.referrer
是一个字符串,因此需要手动解析。 - ultranaut