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

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

WBOY
リリース: 2016-05-16 16:41:42
オリジナル
1507 人が閲覧しました

私はかつて さまざまなページ ジャンプ メソッドにおけるリファラー損失の状況 をコンパイルしました。その中で、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 が正常に取得できるようになりました。

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート