render.js 875 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. var page = require('webpage').create();
  2. var args = require('system').args;
  3. var params = {};
  4. var regexp = /^([^=]+)=([^$]+)/;
  5. args.forEach(function(arg) {
  6. var parts = arg.match(regexp);
  7. if (!parts) { return; }
  8. params[parts[1]] = parts[2];
  9. });
  10. var usage = "url=<url> png=<filename> width=<width> height=<height>";
  11. if (!params.url || !params.png) {
  12. console.log(usage);
  13. phantom.exit();
  14. }
  15. page.viewportSize = {
  16. width: params.width || '800',
  17. height: params.height || '400'
  18. };
  19. page.open(params.url, function (status) {
  20. console.log('Loading a web page: ' + params.url);
  21. function checkIsReady() {
  22. var canvas = page.evaluate(function() {
  23. return $('canvas').length > 0;
  24. });
  25. if (canvas) {
  26. page.render(params.png);
  27. phantom.exit();
  28. }
  29. else {
  30. setTimeout(checkIsReady, 10);
  31. }
  32. }
  33. setTimeout(checkIsReady, 200);
  34. });