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浏览器中将会出错. |
|