1

ページが JavaScript によって変更されたときに、ブラウザーの履歴に小さな問題が発生しました。

再現方法

  1. 削除可能な要素を含むページを開きました。次に、ajaxでJavaScriptをトリガーする削除ボタンを押して、jquery.remove()
  2. 次に、リンクをクリックして別のページを開きます
  3. 新しいページでブラウザの戻るボタンを押します
  4. データベースに実際には存在しない要素が削除されたページにいます。

解決策は何ですか?ブラウザの履歴を消去しますか? (できますか?)

解決

Endy とソースのおかげで、いくつかの解決策が得られました。

  • HTML テンプレートで、名前が削除された入力 [type=hidden] を作成します (何でも)

  • 一意のIDで削除できる要素を作成する

  • 削除アクションがトリガーされたとき、入力を削除する一意の ID を追加します

    var deleted = $("input[name=deleted]"); deleted.val(deleted.val()+id+";");

  • ドキュメントの準備ができたら、要素を削除するチェッカーを作成します

ブラウザは 入力に追加された値を自動的に記憶するため、ページがキャッシュから表示されると値が含まれ、ドキュメントの準備が整います。

コード:

var deleted     = $("input[name=deleted]");
if (deleted.length > 0 && deleted.val() != "") {
    var deletedInput    = deleted.val();
    var deletedArray    = deletedInput.split(";");
    for (var i = 0; i < deletedArray.length;i++) {
        if (deletedArray[i] != "") {
            $("#photo"+deletedArray[i]).remove();
        }
    }
 }
4

1 に答える 1

0

ブラウザの履歴を消去することはできません。あなたができることは、何かを削除したページでJavascriptを常に強制することです。

window.history.forward();

または、戻ったときにページを変更して、データベースと同期することをお勧めします。

于 2012-09-03T09:55:34.680 に答える