2014-12-15 4 views
1

Я работаю над проектом обслуживания, который был разработан с GWT версией 1.x. Теперь я должен добавить некоторые дополнительные функции в одном проекте, и для этого мне нужно добавить внешний файл JavaScript в приложение GWT. Поэтому я сделал несколько исследований для достижения того же, и я могу понять, что я могу ввести внешний JavaScript с помощью ScriptInjector класса [Source]. но этот класс доступен в GWT версии GWT 2.7.0, и я использую более старую версию GWT.GWT - Внедрение внешнего файла JavaScript в приложение GWT без ScriptInjector

Итак, я хотел бы знать, что я могу вставить внешний файл JavaScript без класса ScriptInjector?

ответ

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); 
    } 
} 

Это работает, если у вас есть JavaScript как TextResource. Если вы хотите загрузить URL-адрес, вы можете указать element.setSrc(yourURL) вместо element.setText(javascript). Вы также можете загрузить javascript из URL как HTTP GET и в любом случае сделать setText.

Смежные вопросы