jquery готов, не дожидаясь завершения загрузки плагинов
Вопрос
Следующий код метода gwt jsni «работает» только тогда, когда у меня открыт Firebug, я полагаю, потому что он замедляет рендеринг страницы на достаточно долгое время, чтобы внешние js-файлы завершили загрузку.
Что я делаю не так, что не жду завершения загрузки плагина jquery, прежде чем пытаться выполнить?
private native void makeHtml(Element element)
/*-{
$wnd.$().ready(function(){
try{
$wnd.$(element).wmd({"preview": true});
alert(1);
}
catch(e)
{
alert(e);
}
});
}-*/;
Решение
У меня были некоторые проблемы с пользовательским интерфейсом jQuery в GWT, потому что, например, массив не был расширен, как это необходимо jQuery (UI?) (обратите внимание, что код JSNI выполняется в песочнице = iframe).Попробуйте поместить проблемный код в функцию на главной/хостовой HTML-странице и вызвать его из кода Java/GWT через JSNI и $wnd. Если это поможет, возможно, вы столкнулись с той же проблемой, с которой столкнулся я (в этом случае вы вероятно, придется «экспортировать» все ваши функции JSNI за пределы кода GWT и обернуть их в вызовы JSNI).
ХТХ, если нет, то придумаем что-нибудь другое ;)
Другие советы
В вашем виджете создайте onLoad()
метод для вызова jsni.