jquery と blockUI プラグインを使用してページがまだ読み込まれているときに UI をブロックするにはどうすればよいですか? ページがAJAX呼び出しを使用してロードされていた場合、回避策はわかっていますが、ページがポストバックでロードされている場合、ページのロードが完全に完了するまでUIをブロックする方法は?
助けてください。あなたの努力と時間を前もって感謝します。
bodyタグが出力されたらすぐにblockUIプラグインを起動する必要があります。
従来の代わりに:
<script type="text/javascript">
$(function (){
$("body").blockUI(options);
});
</script>
$(function (){})
囲みを忘れる必要がある$(document).ready(function (){})
ので、スクリプトはすぐに起動します。
<script type="text/javascript">
$("body").blockUI(options);
</script>
セブの答えに基づいて修正します。UI をブロックする場合は .blockUI() を使用し、オブジェクトをターゲットにする場合は .block() を使用します。体をターゲットにする必要はないと思います。基本的には、それが関数 blockUI が独自に行うことです。body タグの後に関数を呼び出す必要があります...そうしないと、<body>
タグはありません。すべての画像が読み込まれるまで UI をブロックしたままにしたい場合は、最後の行を参照してください。ページコンテンツのみをロードしたい場合は、使い慣れたページの下部にブロック解除機能を配置できます$(document).ready(function().
<script type="text/javascript">
$("body").block(options);
//--or--
$.blockUI(options);
</script>
<script type="text/javascript">
$(document).ready(function() {
$(window).load(function() { $.unblockUI(); }); //load everything including images.
//--or--
$.unblockUI(); //only make sure the document is full loaded, including scripts.
});
</script>
すべてのコンポーネントを無効にしてページを開始し、PageLoad イベントでそれらを有効にすることができます。他のアイデアは、すべてのページを非表示にする CSS クラスを配置し、JQuery を使用してロード時にこれを変更することです。
最終的に機能した完全なコードは次のとおりです。
$("body").block({ message: '<h2>Loading...</h2>' });
$(document).ready(function () {
$("body").unblock();
});
問題は、javascript ファイルの参照にあります。
ブロック UI を ASP.NET Ajax ページに追加する必要がある場合は、ScriptManager に JavaScript ファイルを含めてみてください。
これを試しましたか?
<script type="text/javascript">
$(document).ready(function () {
$.blockUI(options);
});
</script>