リファラーがさまざまなページジャンプ方法で紛失したケースを整理しました。 IEでは、location.href = "a.html"などのメソッドを使用してページがリダイレクトされると、document.referrerの値が空になります。これはIEのバグである必要があります。
ほとんどの場合、この問題は私たちにトラブルを引き起こすことはありませんが、時々JavaScriptを使用してジャンプする必要があり、同時にドキュメントを収集する必要があるため、次のページに参照する必要があるため、他の方法を考えなければなりません。
フォームGETメソッド
最初に思い浮かぶのは、フォームフォームを使用してJSを使用してGETリクエストを開始することです。コードは次のようになります:
コードコピーは次のとおりです。
関数gotopage(url){
if(isie){
// IEブラウザ
var frm = document.createelement( "form");
frm.criftion = url;
frm.method = "get";
document.body.AppendChild(FRM);
frm.submit();
} それ以外 {
// nonie
location.href = url;
}
}
この方法は、予想どおりに機能し、ターゲットページのdocument.referrerは正常に前のページを指すことができます。
A-ELEMENTシミュレーション[メソッド]をクリックします
オンラインで検索した後、Situ Zhengmeiのブログがこの問題に対処する別の方法を録音したことがわかりました。
コードコピーは次のとおりです。
//すべてのブラウザを定義します
関数goto(url){
location.href = url;
}
// IEのために再定義します
if(isie){
関数goto(url){
var referlink = document.createelement( 'a');
referlink.href = url;
document.body.appendChild(referlink);
referlink.click();
}
}
原則は非常に単純です。最初にA要素を作成し、HREF属性をターゲットリンクとして指定し、JSを使用してクリックイベントをトリガーします。テスト後、document.referrerをターゲットページで通常取得することもできます。
この方法のコードは短く、フォームフォームを使用して上記のソリューションよりも優れている必要があります。