2016-09-29 8 views
1

私のSailsjsプロジェクトでnode-webshotを使用しています。その中で、私はそれを使用して、Googleグラフを使って作成された動的なグラフとグラフを含むビューを持つルートのウェブショットを撮っています。問題は、グラフが生成されると(この場合はバブルチャート)、node-webshotメソッド呼び出しはこのページの空のイメージを生成することです。しかし、ブラウザでルートを開くと、グラフが完全に生成されます。URLのウェブショットを取ることができません

これは、動的に生成されますグラフの一種である - http://jsbin.com/vewesafegi/edit?html,js,output

そして、これは私がそのwebshotを生成するために使用しています帆JSノードwebshotコードです。

var options = { 
     screenSize: { 
      width: 710, 
      height: 500 
     }, 
     shotSize: { 
      width: 710, 
      height: 'all' 
     }, 
     userAgent: 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.20 (KHTML, like Gecko) Mobile/7B298g', 
     siteType: 'url', 
     renderDelay: 500, 
     quality: 50 
    }; 

    webshot('http://localhost:1337/generatedChart','Chart.png', options, function(err) { 
     //do something 
     res.ok(); 
    }); 

答えて

3

よし...だから私はノードwebshotのマニュアルを読み、webshotのoptionsに、私はtrueに設定されている場合takeShotOnCallbackと呼ばれるキーを設定できることが判明、私はコールバックを持ってできるようになります(window.callPhantom('takeShot');)が読み込まれたページから削除します。

このコールバックは、Webshot呼び出しでページのスクリーンショットを取得するように指示します。 ここに -

そして、生成されたショットが空白だった理由は、ウェブショットを撮ったときに動的に生成されたグラフがページにロードされなかったためです。

関連する問題