我正在使用ajax调用从服务器接收长字符串中的图像
图像的网址肯定在结果[1]内。 我使用了width / naturalWidth和height / naturalHeight,有时它们返回0,在其他情况下它们返回正确的像素大小
var imgElement = jQuery("<img>").attr("src", result[1]);
var width = imgElement[0].naturalWidth;
var height = imgElement[0].naturalHeight;
if (width >= that.minImgPixels && height >= that.minImgPixels) {
image = result[1];
}
如何在不将图像宽度和高度插入dom的情况下检查图像宽度和高度的正确方法是什么?
答案 0 :(得分:0)
问题发生,因为设置jQuery("<img>")
的src需要花费时间,当它这样做时,javascript继续运行到下一行,因为图像尚未加载,所以产生0。
解决方案是设置类似的加载事件:
var imgElement = jQuery("<img>").load(function(){
var width = imgElement[0].naturalWidth;
var height = imgElement[0].naturalHeight;
if (width >= that.minImgPixels && height >= that.minImgPixels) {
image = result[1];
}
}).attr("src", result[1]);
答案 1 :(得分:0)
试试这个:
function GetAnImage(src) {
var newImg = document.createElement('img');
newImg.src = src;
return newImg;
}
var newImg = GetAnImage("abc.jpg");
newImg.onload = function () {
var height = this.height;
var width = this.width;
//do with the image as you want
}
或看到此链接:Getting auto size of IMG before adding it to DOM (Using JQuery)