私はかつて さまざまなページ ジャンプ メソッドにおけるリファラー損失の状況 をコンパイルしました。その中で、IE では location.href = "a.html" のようなメソッドを使用して page にジャンプする、つまり の値が記載されていました。ターゲットページの document.referrer は空になります。これは IE のバグのはずです。
ほとんどの場合、この問題は問題にはなりませんが、場合によっては JavaScript を使用してジャンプし、同時に次のページで document.refer を収集しなければならない場合は、他の方法を考えなければなりません。
フォームの GET メソッド
最初に思い浮かぶのは、Form フォームを使用し、JS で GET リクエストを開始することです。コードは次のようなものです:
このメソッドは期待どおりに機能し、ターゲット ページの document.referrer は通常どおり前のページを指すことができます。
要素シミュレーションのクリック方法
オンラインで検索した結果、この問題に対する別の解決策が Situ Zhengmei のブログに記録されているのを見つけました。
//IE 用に再定義
if (isIE) {
関数 goto(url) {
var ReferLink = document.createElement('a');
ReferLink.href = url;
document.body.appendChild(referLink);
ReferLink.click();
}
}
原理は非常に簡単です。まず A 要素を作成し、その href 属性をターゲット リンクとして指定し、次に JS を使用してそのクリック イベントをトリガーします。テスト後、対象ページで document.referrer が正常に取得できるようになりました。
このメソッドのコードは短く、フォームを使用した上記のソリューションよりも優れているはずです。