感谢现有的线程,我能够提出以下代码:
var img = new Image();
img.src = imgSrc;
if(imgSrc.substring(imgSrcLength-4, imgSrcLength) == '.ico'){
document.getElementById('size' + lineCount).innerHTML = img.height + 'x' + img.width;
} else {
document.getElementById('size' + lineCount).innerHTML = img.naturalHeight + 'x' + img.naturalWidth;
}
您基本上可以忽略lineCount部分。它应该在html列表中显示不同图像的大小。但有时宽度或高度返回为0.对我来说它似乎是随机的,因为如果我再次运行脚本,将加载正确的数量,其他一些地方是0.如果我尝试通过Microsoft Edge函数调试代码一切正常,不会有任何0。
这是我的Microsoft Edge造成的问题还是我错过了什么?
答案 0 :(得分:2)
您需要等待图像完成加载,然后才能获得它的大小。试试吧:
var img = new Image();
img.onload = function () {
if(imgSrc.substring(imgSrcLength-4, imgSrcLength) == '.ico'){
document.getElementById('size' + lineCount).innerHTML = img.height + 'x' + img.width;
} else {
document.getElementById('size' + lineCount).innerHTML = img.naturalHeight + 'x' + img.naturalWidth;
}
};
img.src = imgSrc;
答案 1 :(得分:1)
在评估代码时,如果未加载图像,则图像的宽度和高度很可能会返回0。在运行代码之前,请确保已加载图像(即通过在onLoad事件中运行代码窗口)。