javascript - PhantomJS从多个网址获取屏幕截图

  显示原文与译文双语对照的内容

我在 capture.js 文件中有以下代码:


var page = require('webpage').create();
var ii = 1;
page.open('http://stackoverflow.com/', function() {page.render('capture_' + ii + '.png');}); ii++;
page.open('http://github.com/', function() {page.render('capture_' + ii + '.png');}); ii++;
page.open('http://google.com/', function() {page.render('capture_' + ii + '.png');}); ii++;
phantom.exit();

代码不会产生任何结果。

如何编写js文件以从一个URL列表获取屏幕截图?

时间: 作者:

你可以这样做,因为Javascript本质上是异步的。 只有当前面加载了( 在回调中) 时,才应打开一个新页面。

渲染三个页面最简单的方法可能是:


var page = require('webpage').create();
page.open('http://stackoverflow.com/', function() {
 page.render('capture_stackoverflow.png');
 page.open('http://github.com/', function() {
 page.render('capture_github.png');
 page.open('http://google.com/', function() {
 page.render('capture_google.png');
 phantom.exit();
 }); 
 }); 
}); 

看一下官方的 render_multi_url.js 插件示例。

作者:
...