1

ユーザーが来た場所から2ページ(またはそれ以上)のページをユーザーに送り返すことを検討しています。これまでに機能するのは

<strong>
    <a href="javascript:history.go(-3)">
        Click here to go back to the view
    </a>
</strong>

ただし、呼び出された [history] ​​ページは更新されず、変更が表示されません。

だから私はリファラーを参照するという考えを持っています。PHP を$_SERVER['REFERER']使用することができます。これは問題ありませんが、1 レベルまでしか使用できません。のリファラー (リファラーの...) を取得するにはどうすればよい$_SERVER['REFERER']ですか?

4

4 に答える 4

1

私の知る限り、PHPではそれを行うことはできません。PHP はサーバー側であり、現在のリファラーのみを取得しますが、Javascript はクライアント サイズでブラウザー上で実行され、実際には 2 つ以上の履歴ステップがあるため、単純な答えはノーです。

なぜこれを実現したいのかをもう一度考えてみてください。2 ステップ バック リファラー (最後のリファラーであっても) がまだサイトにあることを保証することはできません。

于 2013-09-24T07:51:02.277 に答える
0

このようなことをしたり、もっと好きなら Cookie を使ったりすることもできますが、これには PHP は必要ありません。

<input type="hidden" id="reload" value="0">

<script type="text/javascript">
  window.onload = function(){
    var el = document.getElementById("reload");

    if(el.value != "0")         
    {
      window.location.reload();
    }

    el.value="1";
  }
</script>
于 2013-09-24T08:03:18.533 に答える
0

ピュアJS。いいえPHP

このように既存のコードを変更します。

  <strong>
        <a href="javascript:window.name='autoLoad';history.go(-3)">
            Click here to go back to the view
        </a>
    </code>

この JS をリダイレクト先のページに追加します。test.htmlクリックしたときに言うhistory.go(-3)

function autoLoad(){
  if (window.name=='autoLoad') {
     location.reload();
     window.name='';
  }
}

body タグにこれを追加します

<body onload="autoLoad()">
于 2013-09-24T07:56:34.127 に答える