IE低版本瀏覽器document.referrer丟失解決方案

antzone發表於2017-03-26

關於document.referrer的用法可以參閱document.referrer屬性一章節。

在document.referrer文章中可以看到,如果是使用location.href方式開啟一個頁面,在IE8和IE8以下瀏覽器中,會丟失document.referrer資訊,它返回的是一個空字串,下面就介紹一下如何解決此問題。

一.模擬點選連結的方式:

[JavaScript] 純文字檢視 複製程式碼
function goto(url){
  location.href=url;
}
if(isIE){
  function goto(url){
    var referLink=document.createElement('a');
    referLink.href = url;
    document.body.appendChild(referLink);
    referLink.click();
  }
}

上面你的程式碼可以實現在IE8和IE8瀏覽器中採用模擬點選連結的方式實現跳轉效果。

關於判斷IE8和IE8以下瀏覽器可以參閱js判斷IE8和IE8以下瀏覽器程式碼一章節。下面對上面的程式碼做一下簡單介紹:

首先宣告一個函式,通過location.href實現跳轉,但是如果判斷當前瀏覽器是IE8或者IE8以下瀏覽器,那麼就重新宣告一個相同名字的函式,然後動態的建立一個連結物件,並且設定href屬性值,然後新增到body中,最後呼叫click()函式模擬實現點選效果。

二.form表單get提交方式:

利用form表單,使用javascript發起一個get請求,程式碼如下:

[JavaScript] 純文字檢視 複製程式碼
function goToPage(url){
  if(isIE){
    var frm=document.createElement("form");
    frm.action=url;
    frm.method="GET";
    document.body.appendChild(frm);
    frm.submit();
  } 
  else {
    location.href = url;
  }
}

和第一個方式的原理差不多,如果不是IE8和IE8以下瀏覽器,則使用location.href方式,否則,會動態建立一個form表單物件,然後採用get方式進行提交,設定action地址,最後提交表單。

相關文章