我们正试图在页面成功回发后的页面加载事件上显示fancybox内的消息。我们使用ASP.NET的Page.RegisterClientScript方法将脚本注册到页面中。这是.cs文件中的代码:
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应该自动检查文件是否满载,那为什么我们需要使用那个定时器功能?感谢。
答案 0 :(得分:0)
我怀疑你可能仍然有元素加载,比如图像。就绪意味着DOM准备就绪。这并不意味着你所说的一切都已加载。如果您需要,请使用.load
。
$(window).load( function() {
//code
} );
本网站上有一篇很好的文章与此相关。