3

JQUERY フェードインの最後にフォームを投稿しています。

  • ユーザーが送信を押すと、メッセージが含まれる DIV ' SWITCHING_SCREENS ' が JQUERY を介してフェードインし、フォーム ページをカバーします。
  • その div が完全にフェードインすると、javascript はフォームを別のページに投稿します。

Javascript:

    Theform = document.getElementById('customers_form');

    $('#SWITCHING_SCREENS').fadeIn('slow', function(){
        Theform.submit();
    });

これはすべてうまく機能しており、提出などに問題はありません。ただし、ユーザーがブラウザの戻るボタン (firefox) を押した場合、SWITCHING_SCREENS は引き続き表示されます。

フォーム要素の戻るボタンのキャッシュを見てきましたが、戻るボタンで JQUERY がリセットされることを期待していました。または、キャッシュされるとは思っていませんでした。

  • キャッシュされているように見えますか?
  • JQUERY は DIV のこの状態をキャッシュしましたか?

私が試してみました:

Javascript:

Theform = document.getElementById('customers_form');

$('#SWITCHING_SCREENS').fadeIn('slow', function(){
    Theform.submit();
    $('#SWITCHING_SCREENS').hide();
});

これにより、ブラウザの戻るボタンが使用されたときの「fadeIn」状態での DIV のキャッシュが修正されます...

ただし、ページが実際に投稿されたページに切り替わる前に、DIV も削除されます。ページが次のページに投稿されている間、div を表示したままにし、訪問者が戻るボタンを押すと表示されないようにします。

これは Firefox でのみ発生しているようです。

ありがとうございました。よろしく。

4

4 に答える 4

1

.unload()を使用できます。具体的には戻るボタンをインターセプトするのではなく、現在のページをアンロードするイベントをインターセプトします。ブラウザに基づいて、リンク進むボタン、または戻るボタンをクリックするものであれば何でもかまいません。

$(window).unload( function () { $('#SWITCHING_SCREENS').hide(); });

ユーザーがページから移動すると、unload イベントが window 要素に送信されます。これは、多くのことの 1 つを意味する可能性があります。ユーザーがリンクをクリックしてページを離れたか、アドレス バーに新しい URL を入力した可能性があります。進むボタンと戻るボタンがイベントをトリガーします。ブラウザ ウィンドウを閉じると、イベントがトリガーされます。ページのリロードでも、最初にアンロード イベントが作成されます。

于 2013-06-14T12:18:43.317 に答える
0

このコードをページロードに配置します。

$(document).ready(function({  
    $('#SWITCHING_SCREENS').hide();
    ..... rest of your code will go here.........
}));
于 2013-06-10T22:20:55.917 に答える
0

jQuery が何かをキャッシュしたのではなく、ユーザーが最後に見たページの状態をブラウザーがキャッシュしたのです。これは正常な動作であり、望ましい動作であると言う人もいます。たとえば、ページの一番下までスクロールし、リンクをクリックして (新しいページに移動します)、[戻る] ボタンを押すと、ブラウザーはページの一番下に戻ることさえあります。残しました。

だから私は次のようなものを提案します:

$('#SWITCHING_SCREENS').fadeIn('slow', function(){
    $(window).unload( function () { $('#SWITCHING_SCREENS').hide(); });
    Theform.submit();
});
于 2013-06-15T23:12:59.573 に答える