2012-04-16 72 views
0

我想在我的应用程序中使用GWT编写JavaScript。 这是一个普通的HTML工作代码:(假设jquery.jsjquery.roundabout.js在同一个文件夹中)如何使用JavaScript与gwt Uibinder

<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> 

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

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

我该如何让它工作?

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

在此先感谢

+0

为什么你不只是把jQuery和插件脚本放入你的主页?如果配置了适当的缓存,它不会影响您的应用程序性能。 – Strelok 2012-04-17 04:59:17

回答

6

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

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

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

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

0

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

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

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