source: other-projects/FileTransfer-WebSocketPair/Themes/themebuilder/bin/phantomjs-1.9.2-windows/examples/render_multi_url.js@ 31525

Last change on this file since 31525 was 31525, checked in by ak19, 7 years ago

Nathan provided more stuff: Themes folder contains Sencha's Themebuilder which generates GXT Themes. It includes the .theme and generated .jar files for the project theme.

File size: 2.2 KB
Line 
1// Render Multiple URLs to file
2
3var RenderUrlsToFile, arrayOfUrls, system;
4
5system = require("system");
6
7/*
8Render given urls
9@param array of URLs to render
10@param callbackPerUrl Function called after finishing each URL, including the last URL
11@param callbackFinal Function called after finishing everything
12*/
13RenderUrlsToFile = function(urls, callbackPerUrl, callbackFinal) {
14 var getFilename, next, page, retrieve, urlIndex, webpage;
15 urlIndex = 0;
16 webpage = require("webpage");
17 page = null;
18 getFilename = function() {
19 return "rendermulti-" + urlIndex + ".png";
20 };
21 next = function(status, url, file) {
22 page.close();
23 callbackPerUrl(status, url, file);
24 return retrieve();
25 };
26 retrieve = function() {
27 var url;
28 if (urls.length > 0) {
29 url = urls.shift();
30 urlIndex++;
31 page = webpage.create();
32 page.viewportSize = {
33 width: 800,
34 height: 600
35 };
36 page.settings.userAgent = "Phantom.js bot";
37 return page.open("http://" + url, function(status) {
38 var file;
39 file = getFilename();
40 if (status === "success") {
41 return window.setTimeout((function() {
42 page.render(file);
43 return next(status, url, file);
44 }), 200);
45 } else {
46 return next(status, url, file);
47 }
48 });
49 } else {
50 return callbackFinal();
51 }
52 };
53 return retrieve();
54};
55
56arrayOfUrls = null;
57
58if (system.args.length > 1) {
59 arrayOfUrls = Array.prototype.slice.call(system.args, 1);
60} else {
61 console.log("Usage: phantomjs render_multi_url.js [domain.name1, domain.name2, ...]");
62 arrayOfUrls = ["www.google.com", "www.bbc.co.uk", "www.phantomjs.org"];
63}
64
65RenderUrlsToFile(arrayOfUrls, (function(status, url, file) {
66 if (status !== "success") {
67 return console.log("Unable to render '" + url + "'");
68 } else {
69 return console.log("Rendered '" + url + "' at '" + file + "'");
70 }
71}), function() {
72 return phantom.exit();
73});
Note: See TracBrowser for help on using the repository browser.