我使用以下代码获取页面中的所有img标记:
"use strict";
var system = require('system');
var args = system.args;
var page = require('webpage').create();
page.onLoadStarted = function () {
console.log('Loading Page...');
};
page.onLoadFinished = function (status) {
console.log('Loading finished.');
var imgs = page.evaluate(function() {
console.log(document.images);
console.log(document.images.length);
return document.images;
});
for (var i = 0; i < imgs.length; i++){
//console.log(JSON.stringify(imgs[i]));
console.log(imgs[i]);
console.log(imgs[i].alt);
}
phantom.exit();
};
page.open(system.args[1]);
它按预期正确输出替代文字,但在线:
console.log(imgs[i]);
它只输出:&#34; [object object]&#34;我希望得到所有的img标记代码,如果我使用JSON.stringify它会输出一个非常长的msg,它也不是我想要的img标记代码。
有谁可以解释发生了什么?我如何得到img标签代码?
答案 0 :(得分:4)
发生了什么?不确定是诚实的。我怀疑您是否正在比较PhantomJS对使用Chrome的JS控制台记录Element
对象的处理方式,该控制台将实时引用显示为标记而不是[Object object]
。如果你从Chrome浏览器alert(imgs[i])
开始,请看[Object HTMLImageElement]
。
您可以从console.log(imgs[i].outerHTML);
获得您想要的内容。