Вызов функций из файла .js из GWT

У меня есть виджет типа слайдера страницы от стороннего производителя, который довольно стандартен в том смысле, что он запускает некоторый код 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 не будет загружен. Или, может быть, я должен подойти к этой проблеме по-другому?

Я бы предпочел не вносить никаких изменений в сторонний виджет, но был бы готов внести небольшие изменения, если это необходимо/возможно. Он был запутан, поэтому его очень трудно читать.


person Michael    schedule 31.01.2014    source источник


Ответы (1)