2013-10-29 49 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(); 
});