ホームページ  >  記事  >  ウェブフロントエンド  >  js_javascriptスキルで主要ブラウザとのリファラー互換性の問題を解決する方法

js_javascriptスキルで主要ブラウザとのリファラー互換性の問題を解決する方法

WBOY
WBOYオリジナル
2016-05-16 16:32:171531ブラウズ

HTTP ヘッダー リファラーは主に、私がどこから来たのか、つまりどのページから来たのかを人々に伝えます。これは、この Web サイトにアクセスしたユーザーのソースをカウントするために使用でき、ホット リンクを防ぐためにも使用できます。これを取得する最良の方法は、サーバー側で取得する場合 ($_SERVER['HTTP_REFERER'] など)、信頼性が低いため、js を使用するのが最善です。人々がそれを偽造するのは困難です

方法: js の document.referer メソッドを使用して、Web ページの本当の起源を正確に判断します。 現在、Baidu 統計、Google 広告統計、CNZZ 統計はすべてこの方法を使用しています。ホットリンク対策も非常に簡単で、ソースURLがjsで判断され、当サイトのものではない場合には画像が表示されなくなります。

周知のとおり、私たち Web 開発者は IE を嫌います。IE は標準をサポートしておらず、標準外のデフォルトの動作は他のブラウザと矛盾することが多いためです。

JavaScript を使用して IE でジャンプします。たとえば、window.location.href = "" を使用します。Google が document.referrer を使用する場合、IE がそれをクリアしているため、ブラウザーによって要求された HTTP リファラーを取得できません。

他の主流ブラウザである Firefox と Chrome はリファラーを保持します。これは、IE が再び「閣僚級」の特別扱いを受けることを意味します。

次のコードは IE でこの問題を解決できます:
// IE ブラウザであるかどうかを検出し、手動でリファラーを追加します
原理は、IE ブラウザ ページにリンクを密かに追加し、そのリンクが自動的にクリックされるようにして、参照元を保持することです。

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

var url = 'http://www.jb51.net'; if (/MSIE (d .d );/.test(navigator.userAgent) || /MSIE(d .d );/.test(navigator.userAgent))
{
var ReferLink = document.createElement('a'); ReferLink.href = url;
Document.body.appendChild(参照リンク); ReferLink.click();
}
それ以外
{
場所.href = URL
}


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