2010-08-29 47 views
7

目前我正试图获得远程图像的宽度/高度。我正在开发链接共享模块,就像在Facebook上粘贴链接时一样,您可以看到标题,说明和图像。使用jquery的远程图像属性

所以我尝试使用PHP getimagesize来获取图像宽度/高度非常缓慢。

所以我想使用jquery解决方案来获取远程图像的宽度/高度,以便我可以过滤图像宽度小于100px。

我新的jQuery的/ JavaScript的

我想是这样

var img = $('#imageID'); 
var width = img.clientWidth; 
var height = img.clientHeight; 
$('#info').html(width+'.. height: '+height); 

它不工作,返回undefined ..高度:未定义

任何帮助表示赞赏。

谢谢

+0

出于好奇,你用这个链接共享代码走了多远。即时通讯试图找到一个jquery插件可以做到这一点.... – 2011-01-04 09:03:03

回答

13

试试这个:

var img = new Image(); 
img.src = 'http://your.url.here/image.png'; 
img.onload = function() { 
    $('#info').text('height: ' + img.height + ' width: ' + img.width); 
}; 

这种做法将让你得到的图像信息,而无需有<img>标签都没有。现在,也许你想要图片在页面上,所以你会做@patrick建议在这种情况下。

+1

+1看起来很聪明。 – Sarfraz 2010-08-29 14:37:58

+0

也许我误解了这个问题。如果意图是将信息(不一定)插入到DOM中,那么这就是要走的路。 – user113716 2010-08-29 14:43:24

2

如果你想获得图像的宽度和高度的客户端,你可以使用jQuery的.width().height()方法。

实施例:http://jsfiddle.net/aeBWQ/

$(window).load(function() { 
    var img = $('#imageID'); 
    var width = img.width(); 
    var height = img.height(); 
    $('#info').html(width+'.. height: '+height); 
}); 

否则$(window).load()将确保图像所得到的高度/宽度之前加载。

+0

谢谢你,你的解决方案也可以。 – cicakman 2010-08-30 04:45:18