2017-04-05 2 views
0

私はファントムを使って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'を1秒間延期して、jsの作業を行う時間を与えてください。 – Vaviloff

+0

@Vaviloff youa re right!タイムアウトが助けになりました!解決策としてあなたのコメントを答えとして確認してください – 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); 
}); 
関連する問題