GWT вставляет элемент скрипта в HTML-файл - PullRequest
10 голосов
/ 29 января 2012

На моем проекте GWT.у меня есть скрипт, который вызывает словарь:

<script type="text/javascript" src=conf/iw_dictionary.js></script>

вместо записи этого элемента скрипта в HTML-файл.я хочу вставить его в HTML из точки входа, при загрузке модуля.

как я могу это сделать?

Ответы [ 4 ]

13 голосов
/ 29 января 2012

Используйте com.google.gwt.core.client.ScriptInjector, поскольку он был создан специально для подобных вещей

ScriptInjector.fromUrl("conf/iw_dictionary.js").setCallback(
  new Callback<Void, Exception>() {
     public void onFailure(Exception reason) {
       Window.alert("Script load failed.");
     }
    public void onSuccess(Void result) {
      Window.alert("Script load success.");
     }
  }).inject();
7 голосов
/ 29 января 2012

Обычно вы вводите элемент script в свой onModuleLoad ():

    Element head = Document.get().getElementsByTagName("head").getItem(0);
    ScriptElement sce = Document.get().createScriptElement();
    sce.setType("text/javascript");
    sce.setSrc("conf/iw_dictionary.js");
    head.appendChild(sce);

Браузер автоматически загружает его, как только он внедряется.

3 голосов
/ 30 января 2012

Вы можете просто добавить элемент <script> в файл * .gwt.xml .

<script src='conf/iw_dictionary.js' />

onModuleLoad будет вызываться только после загрузки скрипта (как если бы он был на вашей html-странице).

0 голосов
/ 20 июля 2014

Ответы от jusio, Дом и Томас Бройер все действительны здесь.В моем конкретном случае я хотел внедрить в GWT серию сценариев polyfill для некоторой поддержки IE8, которая была нам необходима при запуске нативного кода JS.Сценарии полизаполнения должны быть доступны контексту окна iframe GWT, а НЕ странице хоста.Чтобы сделать это, использование ScriptInjector было правильным подходом, так как он присоединяет скрипт на этом уровне.Вы можете ScriptInjector установить сценарии в окне хоста, используя setWindow(TOP_WINDOW).Добавление сценариев с тегом <script> в мой файл * .gwt.xml, казалось, прикреплялось к окну хоста, как и при использовании подхода @ Dom.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...