0

移動してからブラウザを押してページに戻ると、ページのフォーマットに少し問題があります。

次に例を示します。

ドロップダウンリストのフォームに次のようなセキュリティの質問があります。

http://i.stack.imgur.com/ib32z.jpg

ユーザーがドロップダウンリストから[自分の質問を入力]を選択すると、フォームをプッシュダウンするCSSの変更をアニメーション化し、「カスタムセキュリティの質問」の非表示フィールドを表示するjqueryがあります。選択すると、フォームは次のようになります:http: //i.stack.imgur.com/uVPKo.jpg

今、私のジレンマは、このページから離れて、ブラウザの戻るボタンを使用して戻ると、フォーマットが台無しになり、次のようになります。

http://i.stack.imgur.com/5Xhpi.jpg

私が書いたJavaScriptは戻るボタンで再度トリガーされないため、ブラウザーは間隔の変更に対応するためにフォームを下に移動することを認識しません。とにかく、document.readyにある種のキャッシュをリロードまたはクリアするように強制することはできますか?

ありがとう!

編集:申し訳ありませんが、画像をホストに再アップロードして再投稿する必要があります。遅れて申し訳ありません。

4

1 に答える 1

1

Web 上で状態を永続化するための基本的なメカニズムは 4 つあります。

  1. ブラウザーベース - 運が良ければ、ブラウザーはフォーム フィールドへの回答を保存し、同じ名前の INPUT を検出すると再表示します。また、一部のブラウザでは、進む<=>戻るナビゲーションの間で状態を維持します。
  2. Cookie ベース - 自明です。状態情報を含む Cookie を保存し、後で確認して状態を回復する
  3. URL ベース - 必要な情報を含む URL の別のハッシュに移動します (例: "?roll_down=true")
  4. HTML5/ローカル ストレージ - 興味がある場合は調べてください :-)

1 と 4 はどちらもブラウザーの動作/サポートに依存しすぎており、すべてのブラウザーがそれらを希望どおりに処理することに確実に依存することはできないため、基本的には 1 と 4 を除外できます。それは#2または#3を残します。

Cookie を使用すると、より多くの情報を保存できます (Cookie が保持するのと同じくらい、つまり約 4k)。URL では情報が少なくなりますが、ブックマーク機能という追加の利点があります。ユーザーが URL をブックマーク (または友人に送信するリンクなど) として保存すると、状態は保持されます。

したがって、上記のいずれかを選択して、「私のフォームがロールダウンされている」状態を維持する方法を決定してください...そして、(私が思うに)本当に興味がある部分が来ます:この状態をどのように確認し、ユーザーが「戻る」をクリックしたときの問題を修正しますか?

その部分は、すでに回答済みの別の SO 投稿に謙虚に委ねます: Is there a way to catch the back button event in javascript?

于 2012-06-05T17:27:44.170 に答える