2016-10-26 2 views
0

GWT를 사용하여 요소의 색상을 찾으려고했지만 아무 것도 얻지 못하고 있습니다 (빈 문자열). 내 문제가 뭐니? 위치 (문제가 로깅 아님을 나타내는) "절대"로 나타낸다 동안 빈 문자열로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); 
    }-*/; 
} 

콘솔 표시 색 및 가시성 : 다음 코드는 문제를 나타낸다. 결과는 Chrome과 Firefox에서 모두 동일합니다.

+0

'getComputedStyle'을 사용해보세요. 어쩌면이 게시물은 도움이 될 것입니다. http://stackoverflow.com/questions/21797258/getcomputedstyle-like-javascript-function-for-ie8 – Adam

답변

1

이것은 요소의 스타일 속성에 직접 설정된 색상이 없음을 의미합니다. 그것의 CSS 클래스 또는 브라우저 기본값에서 색상을 얻을 수 있습니다.

+0

이 접근 방식은 DOM을 살펴 보지 않고 요소가 렌더링 된 방식을 검색합니다. 놀랐어요. 렌더링 정보는 어떻게 얻을 수 있습니까? (상황에 따라 HTML 페이지 내에 캔버스가 있습니다. 페이지 스타일은 대체 CSS 시트를 통해 동적으로 설정됩니다. CSS 스타일과 일치시키기 위해 캔버스가 필요합니다.) – Oswulf