2016-02-08 7 views
7

以下を実行するにはどうすればよいでしょうか。ユーザーがサイトの前のページから来た場合は、これを実行してください。そうでない場合は

ウェブサイトは2ページあります。親ページと内部ページ。ユーザーがアドレスを入力するか、親ページ以外のページからのリンクをたどって内部ページに直接アクセスした場合は、「foo」を表示します。ユーザーが親ページからInsideページに来た場合は、「bar」を表示します。

可能であれば、JSでこれを行う必要があります。そうでない場合、PHPは第2の選択肢です。

+5

このため、$ _SERVER ['HTTP_REFERER'] 'が読み込まれます。 :) – Jigar

+0

複数のページがある場合は、PHPセッションを使用して現在のURLを以前のものとして保存し、すべてのページでセッション値を確認します。 echo basename($ _ SERVER ['PHP_SELF']);を使用してください。ページ名を取得する。 – Nikz

+0

可能な複製[参照URLを取得するjavascript](http://stackoverflow.com/questions/4131455/get-the-referral-url-in-javascript) –

答えて

1

2ページ目にこの

このコードを試してみてください

jQuery(window).load(function() { 
    if (sessionStorage.getItem('dontLoad') == null) { 
    //show bar 
    } 
    else{ 
    //show foo 
    } 
}); 

親ページでこのコード

jQuery(window).load(function() { 
    sessionStorage.setItem('dontLoad','true') 
}); 
+0

コードに構文エラーがあるようです。空の画面を私に与えてください。 – beliy333

+0

私は内側のページを別のページではなくajax経由で読み込んでいるので、これは最も適切な答えと思われ、私の場合はうまくいきます。 – beliy333

1

with php

セッション/クッキーを作成した後、内側のページにリダイレクトするメディエータページを作成する簡単な方法があります。セッション/クッキーを取得する場合は、foo &セッションを表示します。

誰かが直接URLから来る場合は、何のセッション/クッキーは、それがバーを表示&見つからない...

4

ユーザーがdocument.referrerでから来たページを取得することができます。

だから、このようなあなたのソリューションを実現することができます。

if (document.referrer === 'yoursite.com/parentpage') { 
    // do bar 
} else { 
    // do foo 
} 
1

あなたはdocument.referrerを使用することができますが、これは常に設定されていません。あなたの子ページの

<a href='myChildPage.html?fromParent=1'>My Child Page</a> 

JSコード:

var fromParent=false; 
var Qs = location.search.substring(1); 
var pairs = Qs.split("&"); 
for(var i = 0; i < pairs.length; i++){ 
    var pos = pairs[i].indexOf('='); 
    if(pos!==-1){ 
     var paramName = pairs[i].substring(0,pos); 
     if(paramName==='fromParent'){ 
      fromParent=true; 
      break; 
     } 
    } 
} 

if(fromParent){ 
    alert("From Parent"); 
}else{ 
    alert("NOT From Parent"); 
} 
あなたは親ページの

リンクを親ページ上のURLにパラメータを追加して、子ページにそのexistanceのためにチェックすることができ

この方法では、ユーザーが親ページのリンクと同じURLを入力できるため、100%完全に安全ではありません。より正確な精度のためにdocument.referrerを最初にチェックしてください。上記の方法を使用してください。

関連する問題