我有一个问题,我似乎无法从 Node.js 中设置 PhantomJS 的视口,使用 Phantom-Proxy 作为我用来连接两者的模块。
我已经成功地对网页进行了截屏,但就像我上面所说的,我无法设置视口大小。
在Phantom-Proxy 文档中,它说我应该将视口属性设置为:
//set viewport size for browser window
proxy.page.set('viewportSize',
{ width:320, height:480 }, function (result) {
console.log(result.toString().cyan);
worldCallback.call(self);
});
所以在我的代码中,我尝试将视口设置在实际获取屏幕截图的行上方:
module.exports = function (app, phantom) {
app.get('/url/:url/:width?/:height?', function (req, res) {
phantom.create({"debug": true}, function (proxy) {
var page = proxy.page;
page.set('viewportSize', { width: 320, height: 480 }, function (result) {
console.log(result);
});
page.open(req.params.url, function () {
page.waitForSelector('body', function () {
page.renderBase64('PNG', function (img) {
res.set('Content-Type', 'image/png');
res.end(new Buffer(img, 'base64'), 'binary');
});
});
});
});
});
};
虽然我不认为这会起作用,所以我尝试放入page.open
insidepage.set
的回调并且它被忽略了,并且还尝试放入page.set
insidepage.open
的回调然后page.waitForSelector
在里面。
不过,视口似乎仍然被忽略了!
任何帮助将不胜感激!谢谢你们