2010-11-23 6 views
0
  1. 私はフォームを持っています。最初は、input要素はクラス "unfilled"を持ちます。フォームが記入されると、クラスを動的に削除します。Firefoxの戻るボタンのオブジェクトクラスを復元​​する

  2. フォームが送信され、別のページにリダイレクトされています。

  3. 「戻る」ボタンをクリックして元のフォームに戻りますが、要素に「未塗装」クラスがありません。

これはIE8では問題ありません。 私はこのjQueryの呼び出しを追加しようとしたが、ページはバックボタンを経由して到達したとき、それは実行されません。

$('#my_input').hasClass('unfilled') 

感謝を!

編集:上に間違ったコード行を掲載しました。申し訳ありません。する必要があります:あなたが戻ったときに

$(document).ready(function() { 
    $('#my_input').addClass('unfilled') 

答えて

1

Firefoxは基本的にメモリ内のページの全体の状態をキャッシュし、あなたが戻ったときに、それを復元しbfcache(read more here)と呼ばれるものを、維持します。 onloadスクリプトは再び実行されず、要素は以前と同じ状態にとどまります。この動作を無効にするには、ダミーのonunloadハンドラをページに追加します。

0

FirefoxはDHTML重いページで非常に便利である、状態を保存(あなたが戻ったときに、インスタンスのためのダイアログを生成した場合、そのダイアログがまだ存在します)。コード内でこれを考慮する必要があります。たとえば、すべての入力要素に "未充填"クラスを追加するonreadyハンドラを追加することができます。

$(function() { 
    $("INPUT").addClass("unfilled"); 
}); 
関連する問題