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瀏覽器中將會出錯. |
|