当javascriptEnabled为true时,phantomjs呈现页面到图片两次以上抛出错误
我将在nodejs子进程(spawn)中运行phantomjs以将网页呈现为图片。但当我设置当javascriptEnabled为true时,phantomjs呈现页面到图片两次以上抛出错误,javascript,node.js,phantomjs,Javascript,Node.js,Phantomjs,我将在nodejs子进程(spawn)中运行phantomjs以将网页呈现为图片。但当我设置page.setting.javascriptEnabled=true并将页面渲染三次(第一次和第二次都正确)时,它将抛出错误。如果set javascriptEnabled=false,则运行良好 代码: 请将错误复制或键入问题正文。它只是PhantomJS崩溃了。请阅读错误报告指南,并提交错误报告。@DaveSchweisguth var webpage = require('webpage');
page.setting.javascriptEnabled=true
并将页面渲染三次(第一次和第二次都正确)时,它将抛出错误。如果set javascriptEnabled=false,则运行良好代码:
请将错误复制或键入问题正文。它只是
PhantomJS崩溃了。请阅读错误报告指南,并提交错误报告。
@DaveSchweisguth
var webpage = require('webpage');
var write = require('system').stdout.write;
var configMod = require('./config');
var config = configMod.get();
var args = require('system').args;
var phantomId = args[1];
function doJob(job) {
var page = webpage.create();
var jobId = job.id;
var url = job.url;
var viewportSize = job.viewportSize || config.viewportSize;
var clipRect = job.clipRect || config.clipRect;
var zoomFactor = job.zoomFactor || config.zoomFactor;
var imagePath = job.imagePath;
viewportSize && (page.viewportSize = viewportSize);
clipRect && (page.clipRect = clipRect);
zoomFactor && (page.zoomFactor = zoomFactor);
page.settings = {
javascriptEnabled: true,
loadImages: true,
resourceTimeout: 3000,
userAgent: 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) PhantomJS/2.1.0'
};
page.open(url, function (status) {
write(url + ':' + status)
var data;
var fetchObj;
if (status === 'fail') {
data = {
JOBID: jobId,
url: url,
phantomId: phantomId,
status: false
};
// release the memory
page.close();
// send data to NodeJS
write('{{begin}}' + JSON.stringify(data) + '{{end}}');
} else if (status === 'success') {
page.render(imagePath, {quality: job.quality});
data = {
JOBID: jobId,
url: url,
phantomId: phantomId,
image: imagePath,
status: true
};
// release the memory
page.close();
// send data to NodeJS
write('{{begin}}' + JSON.stringify(data) + '{{end}}');
}
});
}