js獲取referer,兼容各種瀏覽器


 js獲取referer,兼容各種瀏覽器

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM