簡體   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