1

フォームのサーバー側の検証では、history.go(-1);検証エラーが発生した場合にリダイレクトするために使用しています。このようにして、フォーム データはそこに残り、ユーザーはデータを修正してフォームを再送信できます。

キャプチャを使用するまではうまく機能します。ユーザーが間違ったキャプチャを送信した場合、サーバー検証は を使用してユーザーをリダイレクトしますhistory.go(-1);。この方法では、ページは実際にはリロードされず、キャプチャ イメージは更新されません。そのため、ユーザーは間違ったキャプチャを送信し続けます。

ページが を介してリダイレクトされるたびに、イベントまたは関数をトリガーできる方法はありますかhistory.go(-1);。このようにして、キャプチャ画像をリロードする関数を呼び出すことができます。

私のフォーム処理は別のサーバーで行われているため、この方法で行う必要があります。

ありがとう。

4

4 に答える 4

1

window.onpopstate必要なものです。

于 2013-04-18T18:57:57.017 に答える
1

ここでの解決策は、キャプチャ画像をキャッシュできないようにすることです。過去の「有効期限」日付またはキャッシュなし日付のいずれかで、画像とともに応答ヘッダーを送信するようにキャプチャ スクリプトに指示する必要があります。そうすれば、ブラウザは history.go(-1) ごとにキャプチャをリロードします。

于 2013-04-17T10:02:00.920 に答える
0

履歴アダプターが必要だと思います:

History.Adapter.bind (window, 'statechange', function () {});

これにより、履歴状態が変化するたびに関数がトリガーされます。

于 2013-04-17T10:03:31.313 に答える
0
var url = location.href;
window.onpopstate = function(event) {
    if(url != location.href) {
        /*Your Function here
         * I'm using this to load the contentBox when user goes back or forward in  
         * browserhistory -- perfect for sites with ajax
         * works on all browser but u need Jquery. (Safari can't use window.location.href)
         * for functions to add dynamic params or removing them just ask ;)
         * define the url var to prevent function to fire on reload
         */
    }
};
于 2013-12-16T09:19:49.520 に答える