我有一个带有 src
空属性的 img
元素 . 此图像的 src
是动态更改的(取决于用户要访问的页面) .
然后我需要检索图像的高度(没有jQuery) .
这是我的代码:
var myImg = document.getElementById("myImg");
myImg.src = "http://lorempicsum.com/rio/350/200/1";
console.log(myImg.height); // 0 (Expected : 200)
<img src="" alt="" id="myImg">
3 回答
在设置
src
之后,您正试图获取height
并且图像还没有时间下载 . 您需要等到图像加载后再使用更合适的window.getComputedStyle()获取height
,这会考虑CSS规则 .您始终可以包装加载所需的代码,并等待它加载到承诺中以便于重用:
在访问图像的
height
和width
维度属性之前,您需要确保图像已成功加载 .这可以通过向
img
元素添加load
事件处理程序来实现 . Note :必须在设置src
属性之前添加事件侦听器,以确保在图像加载开始后调用加载处理程序 .load
事件的另一个特征如下所示,每次img
元素成功加载图像时都会调用该事件 . 因此,您可以动态更改img上的src
属性,这将导致调用相同的load
事件处理程序: