2012-08-08 9 views
7

jQueryの$(document).ready()のPHPページがあり、ページのフォームにいくつかの変更があります。これは正常に動作します。しかし、私がこのページに来て別のブラウザに行き、ブラウザから「戻る」を押してこのページに戻った場合、$(document).ready()の機能はまったく動作していないようです。これはFFでもChromeでも起こっています。ユーザーが戻るボタンを押してページに来てもdocument.readyを実行します

ユーザーがブラウザの戻るボタンを押してページにアクセスしても何らかの方法で実行することができますか?document.ready

+0

フォームにはオートコンプリートがあるかもしれません – Musa

+3

2年前、数秒で検索:http://stackoverflow.com/questions/2638292/after-travelling-back-in-firefox-history-javascript-wont-run – Alfabravo

+0

@ムサ、フォームがまったく使われなくてもこれが起こります。基本的にdocument.ready関数は、ページがブラウザの戻るボタンを押すことによって訪問された場合は起動しません:( – walmik

答えて

-1

この手順を試すことができます。

最初に非表示のフィールドを追加します。

<input id="reload" type="hidden" name="reload" value="" />

第二には、javascriptのコードを追加します。

<script type="text/javascript"> 
    $(document).ready(function() 
    { 
      var d = new Date(); 
      d = d.getTime(); 
      if ($('#reload').val().length == 0) 
      { 
        $('#reload').val(d); 
        $('body').show(); 
      } 
      else 
      { 
        $('#reload').val(''); 
        location.reload(); 
      } 
    }); 

+0

それは最初の場所で '準備ができて'イベントが発射されていた場合にのみ動作します。 @walmikが述べたように、これは単にそうではありません。 –

0

私は正確に同じ問題を抱えていました。 @ Alfabravoのリンクはこちら私をたくさん助けた: https://stackoverflow.com/a/12648785/679240

を私が実際に必要なことは、いくつかのクリーンアップを行うことだったので、ユーザーがページに入ったとき、またはページが戻って達した場合は、以下のコードはどちらか、私のために十分な大丈夫働きましたボタン:ページがなく戻るボタンを介して到達されたときに、それを最初に入力するときは、特に特異的に検出する必要がある場合は

$(window).on('pageshow', function(){ 
    console.info('Entered the page!'); 
}); 

は、あなたが状態のビットを制御する必要があるかもしれません。上記のリンクはあなたを助けるかもしれません。