如何使用JavaScript和GWT UiBinder的(How to use JavaScript

2019-09-16 14:27发布

我想在我的应用程序,它与GWT写入执行JavaScript。 这是一个普通的HTML工作的代码:

<html>
  <head>
  </head>

  <body>
    <ul>
      <li></li>
      <li></li>
      <li></li>
      <li></li>
      <li></li>
    </ul>
    <script src="jquery.js"></script>
    <script src="jquery.roundabout.js"></script>
    <script>
      $(document).ready(function() {
          $('ul').roundabout();
      });
    </script>
  </body>
</html>

(假设jquery.jsjquery.roundabout.js在相同的文件夹)。

我有一个somePresenter (与someView.javasomeView.ui.xml ),我想上面的代码在工作someView.ui.xml

我复制粘贴上面的代码到XML(除了<html>标记我有<g:HTMLPanel>标签),但JavaScript的似乎并没有被执行(所有我看到的是列表,它应该是脚本之前) 。

我怎样才能使它发挥作用?

相关的问题:我可以一些如何使用GQuery这个(类似:。GQuery $()getScript加入(jquery.roundabout.js)来加载外部JS脚本)?

提前致谢

Answer 1:

你不能把一个<script>在UiBinder的,希望看到它加载和你不能把一个同样的原因执行<script>innerHTML在JS用相同expactations(只是因为HTMLPanel和UiBinder的将使用innerHTML不足引擎罩)。

如果您需要动态地加载脚本,看看在ScriptInjector

ScriptInjector.fromUrl(GWT.getModuleBaseURL() + 'jquery.js').inject();

我想GQuery使用ScriptInjector或工作方式类似。



Answer 2:

我最终设法做到这一点通过将

<script src="jquery.js"></script>
<script src="jquery.roundabout.js"></script>

project.html ,然后用JSNI调用执行相应的JavaScript时,相关页面加载(我的演讲)。



文章来源: How to use JavaScript with gwt Uibinder