私たちは、ページのポストバックが成功した後、ページロードイベントで、ファンシーボックス内にメッセージを表示しようとしています。我々はの.csファイルにASP.NET.HereのコードのPage.RegisterClientScript方法を使用してページにスクリプトを登録されていますjQuery document.ready strange behavior
Page.ClientScript.RegisterStartupScript(GetType(), "Script", "ShowPopup('popup');", true);
ここjavsacript機能ShowPopupです:
function showPopup(p) {
ShowFancyBoxDiv("#divMessage", 50, 300);
}
しかし、我々これを行うと、ウィンドウのビューの最初のページだけがグレイアウトされ、下にスクロールすると、ページの残りの部分はまだアクティブであり、グレーではありません。
しかし、以下に示すようにタイマーを追加すると、すべて正常に動作します。
$(document).ready(function() {
setTimeout(function() {
ShowFancyBoxDiv("#divMessage", 50, 300);
$("#fancybox-close").css("display", "none");
}, 1000);
});
だから誰でもここで何が起こっているのか説明できますか。 document.readyは自動的にドキュメントが完全にロードされていることを確認する必要があります。なぜ、そのタイマ関数を使用する必要がありますか?ありがとう。
DID NOT WORK あなたは次のような意味を持っていました:$(document).load(function(){ShowFancyBoxDiv( "#divMessage"、50、300);}); これを使用すると、理由は分かりませんが、ShowFancyBoxDiv()は起動されません。 さらに、1秒のタイムアウトを使用していても、ページのさまざまな要素が読み込まれています(ファイヤーバグの[ネット]タブで検査した場合)が、まだファンシーボックスが正しく表示されます。だから、私は、問題は何か他のものでなければならないと信じています。 – MrClan
@PratikChandra - 申し訳ありませんが、私のコードにエラーがありました。代わりに$(window).loadを使用して今すぐ試してみてください。 – mrtsherman
ありがとう、それは働いた。 – MrClan