4

リファラー (前のページ) が同じドメインから来ているかどうかを確認するには、ページに JS が必要です。

JS を含むページの URL は次のようにフォーマットされます。

http://subdomain.site.com/dir/page?vs=123456

複数の前のページが存在する可能性があります。そのため、JS はドメインが一致することを確認する必要があります。

ドメインが異なる場合、ユーザーを別のページに送りたい。

これは私が働こうとしたものです:

var matchHost = /^https?:\/\/.*\//;
var match = matchHost.exec(document.referrer);
var domain = "http://subdomain.site.com/dir/";   

if (match !== domain) {
window.location.href = domain;
}

しかし、うまくいきません。

何か案は?

4

2 に答える 2

1

正規表現はまったく必要ないかもしれません。たとえば、URL http://example.comを使用してドメインの文字数を知っている場合は、文字を数えてから、参照元の URL ドメインの長さに応じて文字列を分割し、それをドメインの URL で cmopare します。それだけです。

于 2012-11-23T00:00:25.530 に答える
1

あなたの場合match、一致した文字列の配列です。だから決して平等にはなりません。比較する必要がありますmatch[0]

if (match.length== 0 || match[0]!== domain) ...

または、次のようにして、正規表現をまったく回避できます。

if (document.referrer.substr (0, domain.length).toLowerCase()!== domain) ...
于 2012-11-23T00:06:50.190 に答える