jQuery BlockUIプラグインには、単純なコードですべての AJAX 呼び出しにアタッチする非常に優れた機能があります。
$(document).ajaxStart($.blockUI).ajaxStop($.unblockUI);
リンクをクリックするなど、同様のアプローチを使用して、各ナビゲーションに blockUI オーバーレイを表示できますか?
これはイベントを使用して行う必要があると思いますが、これでunload
失敗しました。
$(window).on('unload', function()
{
$.blockUI;
});
ナビゲーションの際、blockUI オーバーレイは表示されません (新しく読み込まれたページには表示されないため、非表示にすることは気にしません)。
私もできます:
$(window).on('unload', function()
{
console.log('$.blockUI;');
$.blockUI;
console.log('Bye!');
});
と両方$.blockUI;
のBye!
メッセージがコンソールにはっきりと表示されますが、blockUI オーバーレイの兆候はありません。
多くのブラウザがalert()
の表示をブロックしていることを読みましたunload
。blockUIもカバーしていますか?div やその他の DOM 要素といくつかのスタイリングの集まりにすぎないので、そうすべきではありませんか?
Chrome 27、Internet Explorer 10、Firefox 21 でテスト済み。
2、3 年前、古いプロジェクトで、私は上記の機能を達成することができましたが、特定のボタンとメニュー項目に blockUI の表示を入札することによって純粋にそこで行われました。AJAX呼び出しと同じように、これをできるだけ避けてグローバルにしたいと思います。