0 Пользователей и 1 Гость просматривают эту тему.
  • 4 Ответов
  • 140 Просмотров
*

web3.0

  • Захожу иногда
  • 264
  • 6 / 5
Неуправляемый js
« : 15.03.2019, 08:15:18 »
Периодически возвращаюсь к проблеме, но решение не нахожу. Есть в шаблоне скрипт, который работает только внизу и только в нестандартном для Joomla виде:
Код
<script src="templates/site/js/1.js"></script> 
</body>
Если переношу вверх шаблона, то скрипт перестает работать. В коде страницы отображается правильно, ошибки в консоле нет.
Код
JHtml::script(Juri::base(). 'templates/site/js/1.js', array('version' => 'auto'));
В итоге не могу сделать асинхронную загрузку скриптов. В чем проблема?
*

Aleks.Denezh

  • Живу я здесь
  • 3399
  • 422 / 4
Re: Неуправляемый js
« Ответ #1 : 15.03.2019, 08:34:36 »
Код
JHtml::script(Juri::base(). 'templates/site/js/1.js', ['version' => 'auto'],['defer'=>'defer']);
*

robert

  • Живу я здесь
  • 4736
  • 436 / 17
Re: Неуправляемый js
« Ответ #2 : 15.03.2019, 09:07:04 »
Видимо, этот скрипт использует какую-то переменную или библиотеку (jQuery, например), которая должна быть загружена до него.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

web3.0

  • Захожу иногда
  • 264
  • 6 / 5
Re: Неуправляемый js
« Ответ #3 : 15.03.2019, 10:12:15 »
Aleks.Denezh, ваш код работает.
robert тоже прав. Проблема отложенной загрузки jQ.
теперь работает только так:
Код
JHtml::_('script', 'jui/jquery.min.js', array('version' => 'auto', 'relative' => true));
JHtml::_('script', 'media/jui/js/bootstrap.min.js', ['version' => 'auto'],['defer'=>'defer']);
JHtml::script(Juri::base(). 'templates/site/js/1.js', ['version' => 'auto'],['defer'=>'defer']);
не работает:
Код
JHtml::_('script', 'media/jui/js/jquery.min.js', ['version' => 'auto'],['defer'=>'defer']);
*

Aleks.Denezh

  • Живу я здесь
  • 3399
  • 422 / 4
Re: Неуправляемый js
« Ответ #4 : 15.03.2019, 11:43:41 »
а потому что у jQuery проблема с асинхронной загрузкой )
Тут несколько выходов:
1. Собрать все скрипты сборщиком в единый (и проблема исчезнет)
2. Убрать defer и подрубить все скрипты подвале
3. перестать использовать jQuery
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться