2012-05-01 4 views
5

私は、ビューアの画面から全身をアニメーション化するページをトランジションとして持っています。それはうまく動作しますが、ユーザーがブラウザのボタンをクリックすると、Firefoxは本文を持たない履歴からキャッシュされたページを表示します。Firefoxで[戻る]ボタンをクリックして訪問したときにページをリロードします

したがって、戻るボタンで訪問したときにページをリロードするだけで十分です。

繰り返し再読み込みされないように、ページをリロードするために次のコードを試しました。

<script type="text/javascript"> 
    window.onload=function(){ 
    var e=document.getElementById("refreshed"); 
    if(e.value=="no")e.value="yes"; 
    else{e.value="no";location.reload();} 
    } 
</script> 
<input type="hidden" id="refreshed" value="no"> 

匿名関数が呼び出されさえされなかったように、それは問題を解決していませんでした。

私はブラウザがページをキャッシュしないようにヘッダーを設定しようとしました。

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"> 
<meta http-equiv="Pragma" content="no-cache"> 
<meta http-equiv="Expires" content="0"> 

また、問題を解決しませんでした。

ページはChromeで正常に動作します。

私は12.0

で使用のFirefoxのバージョンはどうすればページはJavascript、jQueryのまたは任意の他のクライアント側のスクリプトを使用してリロードする得ることができますか?

+0

これはクロムでも機能しますが、値は常に 'no'です –

+0

クロムでは、無名関数が呼び出され、ページがリロードされません。しかし、まだページがキャッシュされていないので、それは問題ではありません。 私の問題は、Firefoxではその関数が呼び出されないということです。 – mahesmohan

答えて

5

メモリー内にキャッシュされたページに戻るときに起動するonloadイベントはありません。

次の3つの主要なオプションを持って、私は思う:

  1. は(キャッシュされたページに移動するとき火を行います)onpageshowイベントを使用してください。
  2. アンロードイベントリスナー (これは単に空の関数になる可能性があります)を追加してページのインメモリキャッシュを防止します。
  3. 迷惑なアンロードアニメーションを実行しないでください。
+0

私は迷惑なアンロードアニメーションが嫌いですが、私がこれを行うクライアントはアンロードアニメーションを特に求めました。ありがとうBoris。 – mahesmohan

+0

ああ、そうです。クライアントはそのようなPITAのビットです。 ;) –

+0

+1。 * "アンロードイベントリスナーを追加してページのメモリ内キャッシュを防止する" *、これはうまくいきました。 [documentation here](https://developer.mozilla.org/en-US/docs/Using_Firefox_1.5_caching)があります。 – Qtax

0

私は試していませんでしたが、setTimeoutが役立つかもしれません。

<script> 
setTimeout(function() { 
var e=document.getElementById("refreshed"); 
    if(e.value=="no")e.value="yes"; 
    else{e.value="no";location.reload();} 
}, 1000); 
</script> 
関連する問題