繁体   English   中英

使用node.js设置PhantomJS的视口

[英]Set viewport of PhantomJS with node.js

我有一个问题,我似乎无法从Node.js内为PhantomJS设置视口,而是使用Phantom-Proxy作为桥接两者的模块。

我已经成功地捕获了所有的Web屏幕截图,但是就像我上面说的那样,我只是无法设置视口大小。

Phantom-Proxy文档中,它说我应该将viewport属性设置为:

//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放在page.set的回调中,并且它被忽略了,还尝试将page.set放在page.open的回调中,然后将page.waitForSelector放在其中那。

视口似乎仍然被忽略了!

任何帮助将不胜感激与此! 谢谢你们

事实证明它一直在工作。

基本上,尽管正确设置了视口,但这并不意味着网页必须是视口的宽度和高度(除非,例如,主体的width100% )。

该网页将在视口中滚动,因此整个页面仍将呈现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM