Я экспортирует метод GWT в родной JavaScript следующим образом:Выяснить, когда модуль GWT загружен
public class FaceBookGalleryEntryPoint implements EntryPoint {
@Override
public void onModuleLoad() {
FacebookGallery facebookGallery = new FacebookGallery();
RootPanel.get().add(facebookGallery);
initLoadGallery(facebookGallery);
}
private native void initLoadGallery(FacebookGallery pl) /*-{
$wnd.loadGallery = function (galleryId) {
[email protected]::loadGallery(Ljava/lang/String;)(galleryId);
};
}-*/;
}
На странице хозяина, я пытаюсь вызвать его:
<html>
<head>
<title>Facebook image gallery</title>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript" src="/fbg/fbg.nocache.js"></script>
<h1>Facebook gallery test</h1>
<script type="text/javascript">
$(document).ready(function() {
loadGallery('blargh');
});
</script>
</body>
</html>
К сожалению, при вызове обратного вызова document.ready функция еще не определена. При ручном запуске с консоли Firebug функция работает нормально.
Я мог выполнять несколько опросов каждые 50 миллисекунд, пока не найду определенную функцию под этим именем, но это похоже на ужасный подход.
Как я могу получить уведомление, когда модуль загружен и, следовательно, когда функция доступна?
Спасибо, выглядит интересно - особенно бит DeferredCommand. Сегодня я сделаю этот снимок. –
BTW, с GWT 2.1 вы должны использовать Scheduler(). Get(). ScheduleDeferred() –
Спасибо за подсказку планировщика. – vanje