Javascript jQuery onLoad事件在加载任何内容之前激发

Javascript jQuery onLoad事件在加载任何内容之前激发,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我知道也有类似的问题,但答案对我来说并不适用(下面的例子)。首先,我的(简化)代码 HTML: JS: 想法很简单:我首先显示加载屏幕并隐藏容器;装载完所有内容后,我隐藏装载屏幕并显示容器 但是,它不起作用。只要容器div开始加载,JS代码就会立即启动show loading_屏幕div只有一个小图像(20KB),而容器div总共约为400KB container div中有图像,它的一些子元素上也有背景图像。因此,根据对的回答,我将代码更改为$(window).load(function())

我知道也有类似的问题,但答案对我来说并不适用(下面的例子)。首先,我的(简化)代码

HTML:

JS:

想法很简单:我首先显示加载屏幕并隐藏
容器
;装载完所有内容后,我隐藏装载屏幕并显示容器

但是,它不起作用。只要
容器
div开始加载,JS代码就会立即启动show

loading_屏幕
div只有一个小图像(20KB),而
容器
div总共约为400KB

container div中有图像,它的一些子元素上也有背景图像。因此,根据对的回答,我将代码更改为
$(window).load(function()
),但这并没有解决问题

我想我可以做到以下几点——一开始甚至不创建container div,只在加载div之后创建它和它的所有内容。但是,我不想走这条路,因为container中有服务器端代码,我必须添加includes等,这不值得。我很高兴地相信20KB的图像会丢失在400KB内容之前的广告,我只需要让代码在加载400KB内容之前不要触发

编辑:

我将这段代码添加到JS(onload函数之外),以查看页面加载时发生的情况:

setInterval(function(){
    var st1 = $('#loading_screen').css("display");
    var st2 = $('#container').css("display");
    console.log(st1+" "+st2);
},100);
它不断输出
none block
,这意味着加载屏幕立即隐藏,容器立即可见。

在构建DOM时,但在加载图像等其他内容之前,会触发“ready”事件。如果需要真正的“load”处理程序,请执行以下操作:

$(window).load(function(){
    //when document loads, hide loading screen and show game
    $('#loading_screen').hide();
    $('#container').show();
})
“ready”事件在构建DOM时触发,但在加载其他东西(如图像)之前触发。如果需要真正的“load”处理程序,请执行以下操作:

$(window).load(function(){
    //when document loads, hide loading screen and show game
    $('#loading_screen').hide();
    $('#container').show();
})
“ready”事件在构建DOM时触发,但在加载其他东西(如图像)之前触发。如果需要真正的“load”处理程序,请执行以下操作:

$(window).load(function(){
    //when document loads, hide loading screen and show game
    $('#loading_screen').hide();
    $('#container').show();
})
“ready”事件在构建DOM时触发,但在加载其他东西(如图像)之前触发。如果需要真正的“load”处理程序,请执行以下操作:

$(window).load(function(){
    //when document loads, hide loading screen and show game
    $('#loading_screen').hide();
    $('#container').show();
})

你应该看看这个问题的答案:

.load()
api的jquery页面解释了以下内容:

与图像一起使用时加载事件的注意事项

开发人员试图使用.load()快捷方式解决的一个常见问题是,在图像(或图像集合)完全加载后执行函数。应注意以下几个已知的注意事项:

  • 它在跨浏览器中无法稳定工作,也不可靠
  • 如果图像src设置为与以前相同的src,则在WebKit中无法正确触发
  • 它不能正确地在DOM树上冒泡
  • 对于已经存在于浏览器缓存中的图像,可以停止激发
它以以下示例结束: 示例:在页面完全加载(包括图形)时运行函数。


你应该看看这个问题的答案:

.load()
api的jquery页面解释了以下内容:

与图像一起使用时加载事件的注意事项

开发人员试图使用.load()快捷方式解决的一个常见问题是,在图像(或图像集合)完全加载后执行函数。应注意以下几个已知的注意事项:

  • 它在跨浏览器中无法稳定工作,也不可靠
  • 如果图像src设置为与以前相同的src,则在WebKit中无法正确触发
  • 它不能正确地在DOM树上冒泡
  • 对于已经存在于浏览器缓存中的图像,可以停止激发
它以以下示例结束: 示例:在页面完全加载(包括图形)时运行函数。


你应该看看这个问题的答案:

.load()
api的jquery页面解释了以下内容:

与图像一起使用时加载事件的注意事项

开发人员试图使用.load()快捷方式解决的一个常见问题是,在图像(或图像集合)完全加载后执行函数。应注意以下几个已知的注意事项:

  • 它在跨浏览器中无法稳定工作,也不可靠
  • 如果图像src设置为与以前相同的src,则在WebKit中无法正确触发
  • 它不能正确地在DOM树上冒泡
  • 对于已经存在于浏览器缓存中的图像,可以停止激发
它以以下示例结束: 示例:在页面完全加载(包括图形)时运行函数。


你应该看看这个问题的答案:

.load()
api的jquery页面解释了以下内容:

与图像一起使用时加载事件的注意事项

开发人员试图使用.load()快捷方式解决的一个常见问题是,在图像(或图像集合)完全加载后执行函数。应注意以下几个已知的注意事项:

  • 它在跨浏览器中无法稳定工作,也不可靠
  • 如果图像src设置为与以前相同的src,则在WebKit中无法正确触发
  • 它不能正确地在DOM树上冒泡
  • 对于已经存在于浏览器缓存中的图像,可以停止激发
它以以下示例结束: 示例:在页面完全加载(包括图形)时运行函数。


哇@sixfingeredman我读到这段话的意思与它实际所说的相反。嗯,有点相反。也许
load
处理程序不等待背景图像?我不确定那是不是他的问题。@sixfingeredman嗯,我已经有一段时间不必担心这样的事情了,所以可能
$(windows).on("load", function() { /// this is deprecated --> $( window ).load(function() {
   // Run a function when the page is fully loaded including graphics.
});