我想读出for循环中url指定的图像的宽度(orgWidth),计算高度为480px的新宽度(calcWidth)。
for (var i=1; i <= item.length; i++) {
url = document.images[i].rsc;
orgWidth = some-fancy-thing-that-reads-the-width;
orgHeight = some-fancy-thing-that-reads-the-height;
factor = orgHeight / 480 // 1400 / 480 = 2.916
calcWidth = orgWidth / factor // 1000 / 2.916 = 342.935
document.images[i].width = calcWidth;
}
答案 0 :(得分:8)
var tmpImg = new Image();
tmpImg.src="https://www.google.com/intl/en_com/images/srpr/logo3w.png"; //or document.images[i].src;
$(tmpImg).on('load',function(){
var orgWidth = tmpImg.width;
var orgHeight = tmpImg.height;
alert(orgWidth+"x"+orgHeight);
});
答案 1 :(得分:4)
我们可以检查图像是否已经加载到浏览器的缓存中。只有加载了图像,我们才会将onload处理程序绑定到它。这是纯粹的javascript示例。
var image;
function onload () {
console.log(image.height, image.width);
}
image= new Image();
image.src="https://www.google.com/intl/en_com/images/srpr/logo3w.png";
// check if image is already loaded to cache
if (image.complete) {
console.log('image already loaded to browser');
onload();
} else {
// or bind onload handler for image
image.onload = onload;
}
播放该示例
答案 2 :(得分:3)
这是不可能的使用javascript,肯定不可能通过'not-preloading',因为你需要'拥有'文件才能用它做任何事情。
您最好的方法是将图像的URL移交给服务器端脚本(PHP?),它将获取图像尺寸并将数据传回给您或将其存储在数据库中(这里的可能性是无穷无尽的)
但是要回答你的问题,使用纯JavaScript无法加载图片是不可能的。