2017-04-05 80 views
0

我正在使用phantomjs將html渲染到jpg爲什麼幻像不能正確渲染頁面?

Phantom完美呈現stackoverflow網站,但不會呈現我自己的html頁面(其中顯示由js生成的pieChart)。

這裏是幽靈腳本:

var webPage = require('webpage'); 
var system = require('system'); 
var page = webPage.create(); 


page.viewportSize = { width: 1920, height: 1080 }; 
page.open(system.args[1], function start(status) { 
    page.render('index.jpeg', {format: 'jpeg', quality: '100'}); 
    phantom.exit(); 
}); 

這裏是輸出IMG:enter image description here

如何解決渲染?

+0

添加'page.onError'回調來檢查錯誤。也可以嘗試用setTimeout推遲'page.render'一秒,讓js有時間完成它的工作。 – Vaviloff

+0

@Vaviloff你是對的!超時幫助!將您的評論作爲答案將其作爲解決方案進行檢查 – Mira

+0

完成,謝謝! ) – Vaviloff

回答

1

該圖表可能未在圖像中顯示,因爲在打開頁面後會立即生成屏幕截圖。嘗試推遲第二個屏幕截圖,例如:

page.open(system.args[1], function start(status) { 
    setTimeout(function(){ 
    page.render('index.jpeg', {format: 'jpeg', quality: '100'}); 
    phantom.exit(); 
    }, 1000); 
});