2012-04-16 5 views
0

私はGWTで書かれた自分のアプリケーションでJavaScriptを実行したいと思います。 これは、通常のHTMLで動作するコードです: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> 

jquery.jsjquery.roundabout.jsが同じフォルダにあると仮定します。)

私は(someView.javasomeView.ui.xmlで)somePresenterを持っていると私は上記をしたいですsomeView.ui.xmlで働くコード。

私は(私は<g:HTMLPanel>タグを持っている<html>タグを除く)XMLに上記のコードを貼り付けコピー が、JavaScriptが実行されていないようです(私が見るすべては、それがスクリプトの前にあるべきなリストがあります)。

どうすればいいですか?

関連する質問:これは (GQuery。$()。getScript(jquery.roundabout.js)の外部jsスクリプトをロードするためのGQueryの使い方ですか?事前

+0

jQueryとプラグインスクリプトをホストページに入れないのはなぜですか?適切なキャッシングが設定されていれば、アプリケーションのパフォーマンスには影響しません。 – Strelok

答えて

6

ありがとうございますUiBinderサンプルメッセージで<script>を入れて、あなたが同じexpactationsとJSにinnerHTML<script>を置くことができないのと同じ理由のためにそれをロードして実行見ることを期待することはできません(単にHTMLPanel理由UiBinderはフードの下でinnerHTMLを使用します)。

あなたがスクリプトを動的にロードする必要がある場合は、ScriptInjectorを見て:

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

私はGQueryがScriptInjectorを使用するか、または同様に動作しているとします。

0

私は最終的にproject.html

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

を入れた後、関連ページがロードされたときに(私のプレゼンター)JSNI呼び出しで、関連するJavaScriptを実行することで、これを行うことができました。

関連する問題