Я учусь, работая с SiteGenesis. Я пока разбираюсь в основах контроллеров и шаблонов вdemandware. Я хотел бы понять, как я могу добавить javascript на стороне клиента на страницу в программном обеспечении. Например, домашняя страница SiteGenesis имеет контроллер в sitecore_controllers, который отображает шаблон домашней страницы. Я хотел бы добавить простое предупреждающее сообщение для пользователей при загрузке начальной страницы: alert('hello world')
. Я могу взломать и вставить это сообщение куда-нибудь, но я хотел бы сделать это, добавив свой собственный картридж и добавив отдельный файл js. Каков наилучший способ сделать это?
Как добавить собственный клиентский javascript на домашнюю страницу SiteGenesis по требованию?
Ответы (1)
Вы правы, что встроенные скрипты здесь не лучшая практика. Чтобы связать файл сценария из вашего кода, вам нужно сделать следующее:
- Добавьте файл скрипта в папку static/js картриджа.
- Используя методы класса URLUtils, создайте URL-адрес этого файла сценария.
- Добавьте тег script с атрибутом src, указывающим на URL-адрес, созданный в 2.
Сейчас рекомендуется размещать эти теги script прямо перед закрывающим тегом body. Вы можете создать шаблон для этих тегов сценария и использовать локальный тег isinclude, чтобы включить его из шаблона декоратора или из шаблона нижнего колонтитула.
Любые вопросы - дайте мне знать.
P.S. Я предположил, что вы знаете/понимаете:
- классы Script API URLUtils и URL;
- как распечатать значение в шаблоне;
- локальные и удаленные включения (варианты тега isinclude);
- декоратор и декорированные шаблоны (теги isdecorate, isreplace).
person
Zlatin Zlatev
schedule
16.05.2017
Спасибо. У меня есть базовые знания архитектуры, и я немного знаком со скриптом API (контроллеры)..
- person awm; 16.05.2017
У меня работал
<script src="${URLUtils.absStatic('/js/hello-world.js')}" type="text/javascript"></script>
, где hello-world.js находится по адресу cartridge/static/default/js/hello-world.js
- person awm; 16.05.2017