ホームページ  >  記事  >  ウェブフロントエンド  >  JS でリファラーが見つからない問題に対する 2 つの解決策 IE_javascript スキルのジャンプ

JS でリファラーが見つからない問題に対する 2 つの解決策 IE_javascript スキルのジャンプ

WBOY
WBOYオリジナル
2016-05-16 16:41:421408ブラウズ

私はかつて さまざまなページ ジャンプ メソッドにおけるリファラー損失の状況 をコンパイルしました。その中で、IE では location.href = "a.html" のようなメソッドを使用して page にジャンプする、つまり の値が記載されていました。ターゲットページの document.referrer は空になります。これは IE のバグのはずです。

ほとんどの場合、この問題は問題にはなりませんが、場合によっては JavaScript を使用してジャンプし、同時に次のページで document.refer を収集しなければならない場合は、他の方法を考えなければなりません。

フォームの GET メソッド

最初に思い浮かぶのは、Form フォームを使用し、JS で GET リクエストを開始することです。コードは次のようなものです:

コードをコピー コードは次のとおりです:

function goToPage(url) {
If (isIE) {
// IE ブラウザ
var frm = document.createElement("form");
frm.action = url;
frm.method = "GET";
document.body.appendChild(frm);
frm.submit();
} else {
//非 IE
location.href = url;
}
}

このメソッドは期待どおりに機能し、ターゲット ページの document.referrer は通常どおり前のページを指すことができます。

要素シミュレーションのクリック方法

オンラインで検索した結果、この問題に対する別の解決策が 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 が正常に取得できるようになりました。

このメソッドのコードは短く、フォームを使用した上記のソリューションよりも優れているはずです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。