1
2
mirror of https://github.com/vimagick/dockerfiles synced 2024-06-25 00:08:49 +00:00

add frameData field

This commit is contained in:
kev 2015-01-02 00:59:59 +08:00
parent f363cbc329
commit be9c3d3900

@ -40,6 +40,22 @@ function execScripts(page, scripts, arr) {
} }
function frameData(page, data) {
data.url = page.frameUrl;
data.name = page.frameName;
data.content = page.frameContent;
data.childCount = page.framesCount;
data.childFrames = [];
for(var i=0; i<data.childCount; i++) {
var node = {};
data.childFrames.push(node);
page.switchToFrame(i);
frameData(page, node);
page.switchToParentFrame();
}
}
function urlopen(req, callback) { function urlopen(req, callback) {
var page = webpage.create(); var page = webpage.create();
@ -183,7 +199,14 @@ function urlopen(req, callback) {
execScripts(page, req.execScripts.preInjected, result.execScriptsOutput.preInjected); execScripts(page, req.execScripts.preInjected, result.execScriptsOutput.preInjected);
injectScripts(page, req.injectedScripts, result.injectedScriptOutput); injectScripts(page, req.injectedScripts, result.injectedScriptOutput);
execScripts(page, req.execScripts.postInjected, result.execScriptsOutput.postInjected); execScripts(page, req.execScripts.postInjected, result.execScriptsOutput.postInjected);
var data = null;
var fdata = {};
frameData(page, fdata);
fdata.content = null;
result.frameData = fdata;
page.switchToMainFrame();
var pdata = null;
switch(req.requestType) { switch(req.requestType) {
case 'jpg': case 'jpg':
case 'png': case 'png':
@ -191,23 +214,23 @@ function urlopen(req, callback) {
var name = req.requestId + '.' + req.requestType; var name = req.requestId + '.' + req.requestType;
page.render('/data/' + name, {format: req.requestType}); page.render('/data/' + name, {format: req.requestType});
result.pageCapture = name; result.pageCapture = name;
data = page.content; pdata = page.content;
break break
case 'script': case 'script':
data = page.evaluate(function() { pdata = page.evaluate(function() {
return window.pjsc_output; return window.pjsc_output;
}); });
break; break;
case 'plain': case 'plain':
data = page.plainText; pdata = page.plainText;
break; break;
case 'text': case 'text':
default: default:
data = page.content; pdata = page.content;
break; break;
} }
result.resultUrl = page.url; result.resultUrl = page.url;
result.pageContent = data; result.pageContent = pdata;
result.totalTime = new Date().getTime() - startTime; result.totalTime = new Date().getTime() - startTime;
result.responseCategory = 'OK'; result.responseCategory = 'OK';
callback(null, result); callback(null, result);