2016-05-02 7 views
0

Ich versuche, die Textfarbe und die Hintergrundfarbe aller p Elemente auf einer Seite zu erhalten:PhantomJS - Getting ein Element berechnet Stil

elements = document.querySelectorAll("p"); 
console.log("elements " + elements.length); 
console.log(window.getComputedStyle(elements[0])); 
console.log(window.getComputedStyle(elements[0]).length); 
console.log(window.getComputedStyle(elements[0]).getPropertyValue("background-color")); 
console.log(window.getComputedStyle(elements[0]).getPropertyValue("color")); 
console.log(elements[0].innerHTML); 

Diese Drucke:

background-color: rgba(0, 0, 0, 0) 
color: rgb(225, 224, 220) 

Aber wenn ich gehe auf Chrom und überprüfen sie auf dem ersten p-Element berechnet Stil, es zeigt:

background-color: #43413e (67, 65, 62 as rgb) 
color: #e1e0dc (225, 224, 220 as rgb) 

Dies wird supossed mir die „berechneten“ s zu erhalten Tyle, warum macht es das nicht? Was fehlt mir hier? Es sollte drucken brackground-color: rgb(67, 65, 62)

Antwort

0

Ich bin mir nicht sicher, wo Sie diesen Code ausführen, aber ich nehme an, dass der Stil programmatisch geändert wird. Das Problem ist höchstwahrscheinlich, dass Sie den Wert manuell in Chrome überprüfen, nachdem die Änderung aufgetreten ist, aber phantomJS überprüft den Wert zu früh. Wenn Sie Ihre Konsolenprotokolle in eine Funktion einfügen und diese Funktion mit einer Verzögerung ausführen (z. B. mit setTimeout), wird das Problem möglicherweise behoben.

Verwandte Themen