Для быстрой загрузки страницы мне нужно вставить JS в конце страницы из компонентов и модулей.
Следующий способ объявления скриптов не работает, чтобы вставить его внизу, потому что нет параметра, чтобы поместить его в нижний колонтитул.
$rsws_document = JFactory::getDocument();
$rsws_document->addScript();
Так каковы краткие способы выполнить мою цель? Если joomla не предоставляет такую функциональность, это является существенным недостатком для скорости загрузки страницы.
Я также хочу добавить пользовательские стили из модуля, чтобы они вставлялись на страницу только один раз, даже если один и тот же модуль добавляет их несколько раз на этой странице -
<style type="text/css"> .classname { color:red; }.....</style>
Как мне этого добиться?
Ответы:
JDocument-> addScript () имеет опции, чтобы отложить загрузку скрипта и / или загрузить его асинхронно. См. Документ API: http://api.joomla.org/cms-3/classes/JDocumentHTML.html#method_addScript
Это позволит браузеру загружать скрипты позже в процессе, что поможет со временем загрузки страницы.
Нет API для загрузки скриптов внизу страницы. Если вам это нужно, вы должны использовать сторонние расширения или добавить его непосредственно в шаблон.
источник
Сейчас я думаю, что нет возможности загружать скрипты внизу страницы.
Что касается вашего второго вопроса, вы можете использовать статическое логическое свойство и установить его в true при первом отображении вашего CSS. Для следующих экземпляров модуля просто протестируйте это свойство, чтобы решить, нужно ли вам добавлять CSS или нет.
Возможно, хорошим местом для добавления этого статического свойства является вспомогательный класс модуля.
С Уважением,
источник
$ document-> addScript () всегда добавляет сценарии в разделе заголовка перед тегом. Итак, если вы хотите загрузить файл скрипта внизу страницы, вам нужно включить js в этот файл, просто используя
<script src="{pathtojacvascriptfile}"></script>
Я надеюсь, что это может помочь
источник
Нет способа добавить скрипт в нижний колонтитул прямо сейчас. Однако вы можете создать плагин, который будет получать выходные данные, искать тег с соответствующим именем, например, нижний колонтитул, и использовать str_replace для добавления в ваш код.
Но вы можете использовать эти расширения для достижения этого:
Также я нашел один метод. Я предпочитаю не взламывать основной код, но это лучшее, что я могу придумать на данный момент.
пожалуйста, проверьте эту ссылку - Javascript файлы включены в нижний колонтитул
Надеюсь, это поможет другим :)
источник
Мы используем модуль под названием «Пустой модуль», который позволяет поместить любой скрипт (PHP, Java, CSS, HTML и т. Д.) И выбрать, где его загрузить (голова, тело, конец тела и т. Д.).
Это бесплатно, и я нашел это абсолютно полезным: http://extensions.joomla.org/extensions/core-enhancements/coding-a-scripts-integration/custom-code-in-modules/3668
Чтобы переместить сценарии из нижней части тела, это немного больше работы. Использовать этот:
Включить в шаблон:
Добавьте одну «неустановленную» строку для каждого скрипта, который нужно удалить из головы. Затем добавьте его в пустой модуль загрузки внизу (позиция отладки?). Один плюс, если вы создаете разные пустые модули, это то, что вы можете загружать скрипты только там, где это необходимо (например, экземпляр модуля только для motools, загружая его только на определенной странице).
Для стилей вы также можете использовать пустой модуль.
Надеюсь, это поможет.
источник
Я еще не пробовал. Вы можете создать модуль, который не отображает HTML, просто печатает сценарии и стили, но он находится в нижней части модуля на страницах, где отображается ваш другой модуль.
источник