js获取referer,适用于Chrome,Firefox,IE等各种浏览器,javascript获取页面来源网址(即referer,当前页面的上一页页面地址).
注意,referer在PHP中是通过$_SERVER['HTTP_REFERER']来获取的,而js中的referer拼写也不一样,不是referer,而是referrer.
js通过document.referrer来获取页面来源网址.
但有一点需要特别指出,在IE浏览器中,如果页面是通过location.href跳转过来的,那么使用document.referrer是无法获取到referrer的.
为此,你需要重新写一个自定义函数,来执行页面跳转才能保证跳转后能够获取到页面来源网址.代码如下:
要执行页面跳转,请使用自定义函数goTo()来代替location.href="xxxx";
如果页面中没有进行页面跳转,则无须考虑IE兼容性,可以直接使用getReferer()函数来获取referer.
<script type="text/javascript">
function goTo(url){
var ua = navigator.userAgent;
if(ua.indexOf('MSIE')>=0){
var rl = document.createElement('a');
rl.href= url;
document.body.appendChild(rl);
rl.click();
}else{
location.href = url;
}
}
function getReferer(){
if(document.referrer){
return document.referrer;
}else{
return false;
}
}
</script>
请看使用实例:
<script type="text/javascript">
if(!getReferer()){
goTo('?x=3&r=' + Math.random());
}else{
alert(getReferer());
}
</script>
另请注意,goTo()函数一定要在<body>和</body>标签之间或</body>标签之后调用,如果在<body>标签之前调用,在IE浏览器中将会出错. |
|