HTML文件在GWT / GXT项目中不起作用

时间:2015-02-17 16:27:33

标签: html gwt gxt

以下代码在我自己运行时工作正常,但是当我从项目中的小部件中运行它时,警报不会显示。我做错了什么或忘记做某事?

 <html>
    <head>
    <title>Upload</title>
    <script>
        function test() {
                alert("Works");

        }
    </script>

    </head>
    <body>
        <input type='file' size='30' id='fileDiag' maxlength='45'
            name='fileDiag'>

        <input type="button" onclick="test()" value="TEST" />

    </body>
    </html>

1 个答案:

答案 0 :(得分:1)

尝试使用以下内容替换窗口小部件HTML的内容:

<input type='file' size='30' id='fileDiag' maxlength='45' name='fileDiag'>
<input type="button" onclick="test()" value="TEST" />
<script>
  function test() {
    alert("Works");
  }
</script>

您也不应该将JavaScript函数直接放在widget的html中。您可以使用UiBinder创建它并在UiBinder类中使用@UiHandler指定处理程序,或者创建一个扩展Composite的类,然后使用XTemplates,如下所示:

public interface WidgetTemplates extends XTemplates {
  @XTemplate(source = "content.html")
  SafeHtml content();
}

然后在您的小部件的构造函数中,您可以添加模板的内容:

WidgetTemplates templates = GWT.create(WidgetTemplates.class);

public class MyWidget extends Composite {
  public MyWidget() {
    HTMLPanel rootPanel = new HTMLPanel(templates.content());
    initWidget(rootPanel);
    sinkEvents(Event.ONCLICK);
  }

  public void onBrowserEvent(Event evt) {
    // handler for all events
  }
}

我没有完全测试上面的代码,但你可能会得到一般的想法。你想用GWT方式编码,而不是绕过它。