2014-12-15 1 views
1

GWT 버전 1.x로 개발 된 유지 관리 프로젝트를 진행하고 있습니다. 이제는 같은 프로젝트에 몇 가지 추가 기능을 추가해야하며 GWT 애플리케이션에 외부 JavaScript 파일을 삽입해야합니다. 그래서 나는 이것을 달성하기 위해 약간의 연구를 수행했으며 ScriptInjector 클래스 [Source]의 도움으로 외부 JavaScript를 주입 할 수 있다는 것을 이해할 수 있습니다. 이 클래스는 GWT 버전 GWT 2.7.0에서 사용할 수 있으며 이전 버전의 GWT를 사용하고 있습니다.GWT - ScriptInjector없이 GWT 응용 프로그램에 외부 JavaScript 파일을 입력하십시오.

ScriptInjector 클래스없이 외부 JavaScript 파일을 삽입 할 수 있습니까?

답변

0
public class JavaScriptInjector { 

    private static ScriptElement createScriptElement() { 
     ScriptElement script = Document.get().createScriptElement(); 
     script.setAttribute("type", "text/javascript"); 
     script.setAttribute("charset", "UTF-8"); 
     return script; 
    } 

    protected static HeadElement getHead() { 
     Element element = Document.get().getElementsByTagName("head") 
       .getItem(0); 
     assert element != null : "HTML Head element required"; 
     return HeadElement.as(element); 
    } 


    /** 
    * Injects the JavaScript code into a 
    * {@code <script type="text/javascript">...</script>} element in the 
    * document header. 
    * 
    * @param javascript 
    *   the JavaScript code 
    */ 
    public static void inject(String javascript) { 
     HeadElement head = getHead(); 
     ScriptElement element = createScriptElement(); 
     element.setText(javascript); 
     head.appendChild(element); 
    } 
} 

이 작동합니다. URL에서로드하려는 경우 element.setText(javascript) 대신 element.setSrc(yourURL)을 지정할 수 있습니다. HTTP GET으로 URL에서 자바 스크립트를로드하고 어쨌든 setText를 수행 할 수도 있습니다.