2016-10-26 1 views
0

J'essaie de trouver la couleur d'un élément avec GWT, mais je ne reçois rien (chaîne vide) retourné. Quel est mon problème? Le code suivant illustre le problème:Obtenir la couleur de l'élément avec GWT

import com.google.gwt.core.client.EntryPoint; 
import com.google.gwt.core.client.Scheduler; 
import com.google.gwt.core.client.Scheduler.ScheduledCommand; 
import com.google.gwt.user.client.ui.Anchor; 
import com.google.gwt.user.client.ui.RootLayoutPanel; 

public class Test implements EntryPoint { 
    Anchor a = new Anchor("Anchor"); 

    @Override 
    public void onModuleLoad() { 
      RootLayoutPanel.get().add(a); 

      Scheduler.get().scheduleDeferred(new ScheduledCommand() {  
       @Override 
       public void execute() { 
        log(a.getElement().getStyle().getColor());      
        log(a.getElement().getStyle().getVisibility()); 
        log(a.getElement().getStyle().getPosition());      
       } 
      }); 
    } 

    static native void log(String message) /*-{ 
    console.log(message); 
    }-*/; 
} 

La console affiche la couleur et la visibilité des chaînes vides, tandis que la position est indiquée comme « absolue » (montrant que le problème n'est pas l'exploitation forestière). Le résultat est le même dans Chrome et Firefox.

+0

Essayez d'obtenir 'getComputedStyle'. Peut-être que ce post va vous aider: http://stackoverflow.com/questions/21797258/getcomputedstyle-like-javascript-function-for-ie8 – Adam

Répondre

1

Cela signifie que l'élément n'a pas de couleur définie directement dans son attribut de style. Il peut obtenir des couleurs à partir de sa classe CSS ou de ses paramètres par défaut.

+0

Donc, cette approche ne regarde pas le DOM et de récupérer comment l'élément a été rendu? Je suis surpris. Comment puis-je obtenir les informations de rendu? (Ma situation est que j'ai un canevas dans une page HTML Les styles de page sont définis dynamiquement via des feuilles CSS alternatives. J'ai besoin que le canevas corresponde au style CSS.) – Oswulf