我想在加载时检查图像宽度:
<img src="http://upload.wikimedia.org/wikipedia/commons/3/34/Regensburg_Uferpanorama_08_2006.jpg" id="img" alt="" />
<pre id="pre "></pre>
<script>
var i = 0;
var img = document.getElementById("img");
var pre = document.getElementById("pre");
function checkWidth() {
i++;
pre.innerHTML += "width:" + img.width + ";height:" + img.height + "\n";
if (i < 20) {
setTimeout(function() {
checkWidth();
}, 100);
}
}
checkWidth();
</script>
现在我已经测试了几个浏览器并且都返回0x0,直到加载了图像标题(不是完整图像)。之后,他们返回正确的尺寸(例如1920x1080)。
但Internet Explorer 11(我只能测试此浏览器版本)为每个图像返回28x30像素(纵横比的独立性),直到加载标题。
为什么IE11会返回这个尺寸?这是所有IE版本中的常见行为吗?
答案 0 :(得分:1)
@mouser有正确的想法。它是破碎图像的占位符:
我的解决方案是使用img.naturalWidth()而不是img.width(),如下所述:
https://stackoverflow.com/a/1977898/318765
这将返回0x0,直到加载了图像标题。