2

我想在我用 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(with someView.javaand someView.ui.xml),我希望上面的代码在someView.ui.xml.

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

我怎样才能让它工作?

相关问题:我可以如何使用 GQuery 吗(例如:GQuery.$().getScript(jquery.roundabout.js) 加载外部 js 脚本)?

提前致谢

4

2 回答 2

8

您不能将 a<script>放入 UiBinder 并期望看到它加载和执行,原因与您不能将 a在 JS 中的 a 放入具有相同解释的相同原因(仅仅是因为<script>UiBinder将在幕后使用)。innerHTMLHTMLPanelinnerHTML

如果您需要动态加载脚本,请查看ScriptInjector

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

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

于 2012-04-16T16:46:30.120 回答
0

我最终设法通过将

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

project.html 然后在加载相关页面(我的演示者)时使用 JSNI 调用执行相关 JavaScript 。

于 2012-04-20T08:37:07.420 回答