2012-04-16 73 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呼叫時,相關頁面加載(我的演講)。