7

Safari と Chrome でこの奇妙な問題が発生します (Firefox と IE で動作します)。

  1. 最初のアイテム「A」がチェックされ、アイテム「B」と「C」がチェックされていないこのチェックボックスリストから始めます
  2. 次に、チェックボックス リストに表示されるアイテムを注文する別のページに移動します。
  3. リスト内の項目の順序を変更して、'B'、'A'、'C' の順に並べます。
  4. 戻るボタンを押します
  5. ページがサーバーから再取得され (キャッシュが無効になっています)、サーバーから送信された応答を確認すると、アイテム「A」がまだチェックされており、リストの最初のアイテムではなくなりました。
  6. !!!奇妙な振る舞い!!! ページは新しい順序「B」、「A」、「C」でブラウザーにロードされましたが、「A」はチェックされず、代わりに最初の項目「B」がチェックされます。

どうやら戻るボタンを押すことでチェック項目の位置が元に戻り、サーバーから送信されたフォームデータが破棄されたようです。

ページを更新すると、順序は「B」、「A」、「C」になり、アイテム「A」がチェックされ、すべて問題ないように見えます。

どちらの場合も、ページの IsPostBack が false に設定されています。

これは Web キットのバグですか?

キャッシュをクリアし、プライベートブラウジングモードに入り、履歴をクリアしてみました。それでも同じ動作です。

4

2 に答える 2

4

その間にページの状態が変化したにもかかわらず、Webkitによってフォームデータが「復元」されるという同様の問題が発生しました。

同様の投稿SafariとChromeの戻るボタンの変更は非表示になり、フォームで値を送信すると、私たちに役立つ良いヒントが得られました。autocomplete="off"ページ上のすべてのフォームに追加することで、これを解決できます。

于 2012-01-10T13:45:28.473 に答える
0

次の例を参照してください。

http://jsfiddle.net/eGutT/9/

これは私にも起こっています。ユースケースが非常に単純であり、おそらく一般的であるため、これはかなり根本的な欠陥のように思えます。私はすでに別のプロジェクトの 2 つの場所でこの問題に遭遇しました。セッションを無効にすることで実際にこの問題が回避される場合、ほとんどのクライアントはこのオプションを認識していないか気にしないため、実際の修正にはなりません。

于 2011-01-28T17:45:01.857 に答える