我已经在我的一个Sailsjs项目中使用节点网快照了很久了。在这个过程中,我用它拍摄了一条路线的网照,其中有一个包含动态图表和用谷歌图表创建的图表的视图。问题是,一旦生成了图形(在本例中,是一个气泡图),节点- The快照方法调用就会生成该页面的空图像。但是如果我在浏览器中打开路由,它就会完美地生成图形。
这是一种动态生成的图形- http://jsbin.com/vewesafegi/edit?html,js,output
这是sails节点-网络拍摄代码,我用它来生成它的网络快照。
var options = {
screenSize: {
width: 710,
height: 500
},
shotSize: {
width: 710,
height: 'all'
},
userAgent: 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.20 (KHTML, like Gecko) Mobile/7B298g',
siteType: 'url',
renderDelay: 500,
quality: 50
};
webshot('http://localhost:1337/generatedChart','Chart.png', options, function(err) {
//do something
res.ok();
});
发布于 2016-09-30 07:17:10
Alright...So -我阅读了节点-网射的文档,发现在options
中,我可以设置一个名为takeShotOnCallback
的键,如果设置为true
,将允许我在页面加载后进行回调(window.callPhantom('takeShot');
)。
此回调将告诉网络快照呼叫采取屏幕截图的网页。这里有更多信息- https://github.com/brenden/node-webshot#options
生成的快照之所以为空白,是因为在拍摄网页时,页面没有加载动态生成的图形。
https://stackoverflow.com/questions/39774686
复制相似问题