2013-10-29 24 views
1

我正在尝试查找页面正在下载的图像的大小;显而易见的解决办法是,在PhantomJS中访问图像尺寸

var imgs = []; 
var imgTags = document.getElementsByTagName('img'); 
for (i = 0; i < imgTags.length; i++) { 
    var img = imgTags[i]; 
    imgs.push({src: img.src, h: img.height, w: img.width}); 
} 

,但将只检索呈现规模 - 例如,无处不在的spacer.gif将1×4×4等,而这显然是1x1的。

而且,那种文件扫描似乎没有能挑到已下载,但不是在img标签使用的图像:CSS,背景等

在检查基于WebKit浏览器似乎很能够呈现预览 - 它从哪里获取?

回答

1

希望,一个用于此两个重要属性:naturalWidth和naturalHeight(DOC here

下面是一个示例脚本(计算器的第一图像)

var page = require('webpage').create(); 
var url = 'http://www.stackoverflow.com/'; 

page.open(url, function(status) { 
    var first_image_dim = page.evaluate(function() { 
     return {width :$('img')[0].naturalWidth, height:$('img')[0].naturalHeight}; 
    }); 

    console.log(JSON.stringify(first_image_dim)); 
    phantom.exit(); 
});