2016-04-25 20 views
0

Ich verwende PhantomJS in Verbindung mit Pythons PDFKit, um PDFs zu erzeugen. Ich habe den folgenden Knoten Skript meine Python-Skript die Größe jeder Seite des Körpers zu erhalten, ruft:PhantomJS Höhe ändert sich nicht

Mühe
var args = process.argv.slice(2); 
var phantom = require('phantom'); 

phantom.create().then(function(ph) { 
    ph.createPage().then(function(page) { 
     page.viewportSize = {width: 20, height: 1200}; 

     page.open(args[0]).then(function(status) { 
      page.includeJs('http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js').then(function(err) { 
       page.evaluate(function() { 
        return $('body').height(); 
       }).then(function(height) { 
        console.log(height); 
        ph.exit(); 
       }); 
      }); 
     }); 
    }); 
}); 

Ich habe mit Phantom der Höhe in geeigneter Weise mit jQuery zu berechnen. Wie Sie sehen können, habe ich die Breite absichtlich auf "20" gestellt, um zu verdeutlichen, dass Phantoms Fenstergröße nicht richtig eingestellt zu sein scheint. Ob es 20, 200, 2000 ist, bekomme ich die gleiche Höhe von jQuery Höhe() Methode pro Seite (unterschiedlich pro Seite, aber immer die gleiche auf einer bestimmten Seite unabhängig von der Breite Einstellung), die mich glauben, die Höhe muss statisch bleiben, unabhängig davon, ob die Ansichtsfenstergröße manuell festgelegt wird. Anleitung, warum dies geschehen kann, wird sehr geschätzt!

+0

Sie würden verwenden müssen 'page.set (‚Viewport‘, ...)' und das zurückgegebene Versprechen –

+0

Wie diese verbrauchen? Ich bin ziemlich neu bei der Verwendung von Promises ... page.set ('viewportSize', {width: 20, height: 1200}). Dann (funktion (err) { page.open (args [0]). dann (Funktion (Status) { ... } }); – coltonoscopy

Antwort

0

$ ('body'). Height() bedeutet, die Höhe von document.body zu erhalten, was eine reguläre Zahl wäre, die durch die Höhe von HTML bestimmt wird. Sie könnten den richtigen Wert durch erhalten window.screen.height

Verwandte Themen