У меня есть виджет типа слайдера страницы от стороннего производителя, который довольно стандартен в том смысле, что он запускает некоторый код jquery (внутри функции инициализации, предоставляемой виджетом) в HTML в вашем документе в поисках интересующих классов.
Моя проблема в том, что я использую GWT, поэтому мой HTML создается, а затем вставляется на страницу файлом javascript GWT. Вставляемый HTML-код содержит все необходимые теги для работы виджета слайдера. Поэтому после его добавления (в DOM) мне нужно запустить код инициализации js, чтобы ползунок работал как положено. Я создал JSNI для вызова:
private native void initSlider() /*-{
Index.initLayerSlider();
}-*/;
Я загружаю индекс в заголовок файла HTML перед файлом GWT nocache.js, но при загрузке сайта получаю сообщение об ошибке консоли javascript: Uncaught ReferenceError: Index не определен, поэтому я попытался
private native void initSlider() /*-{
jQuery(document).ready(function() {
Index.initLayerSlider();
});
}-*/;
и jQuery также загружается в заголовок моего HTML-файла, но я получаю аналогичную ошибку: Uncaught ReferenceError: jQuery не определен
Как я могу вызвать эту функцию из внешнего файла .js из GWT? Думаю, мне нужно что-то сделать, чтобы убедиться, что браузер загрузил и запустил файл .js до запуска GWT, или сделать паузу GWT, когда он попадет туда, пока файл .js не будет загружен. Или, может быть, я должен подойти к этой проблеме по-другому?
Я бы предпочел не вносить никаких изменений в сторонний виджет, но был бы готов внести небольшие изменения, если это необходимо/возможно. Он был запутан, поэтому его очень трудно читать.