使用PhantomJS,我想打印像Firebug那样的网页的html源代码。用iframe解释。
var page = require('webpage').create();
page.open('http://google.com', function () {
console.log(page.content);
phantom.exit();
});
这似乎只显示没有iframes html的解释HTML。并且使用评估无法帮助,因为我的iframe在另一个域中,所以我认为javascript无法访问它们。
答案 0 :(得分:6)
我发现通过帧来获取内容不起作用,因为phantomjs中的page.framesCount
只计算子帧而不是主帧。以下是显示所有帧的HTML的工作代码:
// Apparently framesCount doesn't include the main frame so add 1
var frameCount = page.framesCount + 1
var html = page.frameContent + '\n\n'
for (var i = 1; i < frameCount; ++i) {
page.switchToFrame(i)
html += page.frameContent + '\n\n'
}
最后一件重要的事情,如果您不想要源但想要访问iframe DOM,即使它在另一个域中也是这样:
phantomjs --web-security=no
访问iframe正文的代码是:
var i = document.getElementsByTagName('iframe')
var body = i[0].contentWindow.document.body