Javascript 为什么在加载img之前发生window.load事件?

Javascript 为什么在加载img之前发生window.load事件?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,加载HTML文档后会发生ready事件,而window.onload事件会在加载所有内容(例如图像、css)后发生 在下面的代码中 jQuery(window).load(函数(){ jQuery('#div1').html(“Height=“+jQuery('#img1').Height()+”“+”width=“+jQuery('#img1').width()); }); 预期产量 实际产量 所以 (一) 为什么在加载img之前发生window.onload事件 (二)

加载HTML文档后会发生
ready
事件,而
window.onload
事件会在加载所有内容(例如图像、css)后发生

在下面的代码中


jQuery(window).load(函数(){
jQuery('#div1').html(“Height=“+jQuery('#img1').Height()+”
“+”width=“+jQuery('#img1').width()); });




预期产量


实际产量


所以

(一)

为什么在加载
img
之前发生
window.onload
事件

(二)

等价的javascript代码是什么


jQuery('#div1').html(“Height=“+jQuery('#img1').Height()+”
“+”width=“+jQuery('#img1').width())

您正在尝试展开Div,使其与图像大小相同? 我从链接上看到了一些教程。。。我认为你做得太过分了

1-您可以在div中包含th图像

2-如果您没有访问html的权限,可以将图像附加到div中

对于第一点,使用
window.onload
not
load

阅读此内容了解更多信息

关于你的第二点

jQuery('#div1').html(“Height=“+jQuery('#img1').Height()+”
“+”width=“+jQuery('#img1').width()) 转换为JS有点困难 我可以让你参考这篇文章,有很多工具可以将表单JQ转换为JS


关于第一个问题为什么在加载img之前发生window.load事件?

没有。根据您的输出屏幕截图,您显然得到了
.height()
.width()
方法的值。这意味着要么图像已加载,要么图像的高度/宽度由CSS设置

对于第二个问题,在香草javascript中,它可以写成

document.querySelector('#div1')。innerHTML=“Height=”+
parseFloat(getComputedStyle(document.querySelector('#img1')).height)+“
”+ “width=“+parseFloat(getComputedStyle(document.querySelector('#img1'))).width);
正如您在jquery的文档和方法中所看到的,它们都返回“当前计算的”宽度/高度

因此,如果您的图像尚未加载,这些方法将返回
24
,这是默认的
notfound
图标或
0
的大小

var before=“before load height=“+jQuery('#img1').height()+”
“+”before load width=“+jQuery('#img1').width()+”
”; jQuery(window).load(函数(){ jQuery('#div1').html(在+“加载高度”之前=“+jQuery('#img1').height()+”
“+”加载宽度=“+jQuery('#img1').width()); });


而不是window.load您可以使用document.ready()…在上面的代码中,我希望在加载
img
后呈现高度和宽度值。我认为您可以通过简单的CSS@www139多么糟糕的建议。。。虽然DOM元素将在脚本解析时创建,但内容仍然不会被加载,宽度和高度将为0。@overexchange,在对您的问题进行更深入的研究后,您是否对文本呈现在图像的顶部而不是底部感到惊讶?在本例中,这很正常,您将
#div1
放在HTML层次结构的第一位。另外,您有正确的值,因此在
load
处理程序从我处激发.downvote时,您的图像将被渲染。代码不适用于
窗口。onload
。当我把它传递给
文档时,我通常会给
onload
。。。。但总的来说,你做得太过分了,而且你走得太远了,方法是错误的。。。我不明白为什么你要把div扩展到照片的大小!我认为使用
$('body')
而不是
$('div1')
可以更好地测试这个练习。你是对的