Вопрос или проблема
У меня есть 4 кнопки на главной странице, и при нажатии на них я хочу перейти на другую страницу.
Сначала я попробовал что-то подобное.
<a href="/content/travel/us/en/addticket.html" class="button-link">
<button class="add-ticket">
<span> ДОБАВИТЬ ЛИДЫ </span>
</button>
</a>
Но это не работало.
Затем я попробовал сделать это с помощью javascript, и переадресация работала.
Html
<button class="add-ticket">
<span> ДОБАВИТЬ ЛИДЫ </span>
</button>
Js
document.addEventListener('DOMContentLoaded', function(){
const addticketbutton =document.getElementById('add-ticket');
if(addticketbutton){
addticketbutton.addEventListener('click', function(){
window.location.href="/content/travel/us/en/addticket.html";
});
});
Проблема, с которой я сталкиваюсь в javascript, заключается в том, что часто мне нужно обновлять страницу или перезагрузить. Иногда переадресация работает, иногда нет. Также тег якоря дает нам возможность открыть в новой вкладке.
Я новичок в AEM и не знаю, как это сделать.
Ответ или решение
Вопрос о том, как организовать навигацию в Adobe Experience Manager (AEM) – с использованием JavaScript или HTML с якорными тегами, представляет собой важный аспект веб-разработки. Давайте разберёмся в этом по порядку и рассмотрим ключевые моменты.
1. Функциональность и простота
Использование якорных тегов (<a>
):
-
Преимущества:
- Простота реализации. Создание ссылки на другую страницу требует лишь указания местоположения в атрибуте
href
. - Поведение по умолчанию. При нажатии на ссылку браузер автоматически производит переход на указанную страницу, что является ожидаемым поведением.
- Поддержка таких функций, как открытие в новой вкладке. При добавлении атрибута
target="_blank"
можно осуществить навигацию без потери текущей страницы.
- Простота реализации. Создание ссылки на другую страницу требует лишь указания местоположения в атрибуте
-
Недостатки:
- Возможные ограничения в случае динамического обновления контента, если планируется использовать AJAX.
Использование JavaScript:
-
Преимущества:
- Гибкость в управлении поведением кнопки. Можно делать различные обработчики событий, например, проверять какие-либо условия перед переходом.
- Возможность интерактивного взаимодействия с пользователем, например, появление модальных окон перед переходом.
-
Недостатки:
- Зависимость от JavaScript. Если у пользователя отключён JavaScript, то кнопка не будет функционировать.
- Проблема с кэшированием и редиректами, как вы уже заметили, может вызывать необходимость обновления страницы, что снижает удобство работы для пользователя.
2. Рекомендации по реализации
В вашем случае, предпочтительным решением будет использовать якорный тег. Вот как это можно грамотно реализовать:
<a href="/content/travel/us/en/addticket.html" class="button-link">
<button class="add-ticket">
<span> ADD LEADS </span>
</button>
</a>
При этом <button>
не должен использоваться внутри <a>
, так как это может вызвать неожиданные поведения в некоторых браузерах. Однако можно стилизовать ссылку, чтобы она выглядела как кнопка через CSS:
.button-link {
text-decoration: none; /* убираем подчеркивание */
}
.button-link .add-ticket {
/* ваши стили кнопки */
}
3. Доступность и SEO
Используя a
теги, вы улучшаете доступность контента для поисковых систем и пользователей, использующих вспомогательные технологии, такие как считыватели экрана. Поисковые системы распознают ссылки проще, чем JavaScript редиректы, что положительно сказывается на SEO.
4. Заключение
В заключение, рекомендую использовать якорные теги для навигации на странице в AEM. Это обеспечит большую надёжность, простоту в использовании и улучшенную доступность контента. JavaScript можно использовать для создания более сложных интерактивных функций, но для навигации он не является предпочтительным решением, учитывая проблемы, с которыми вы столкнулись.
Если у вас останутся дополнительные вопросы или потребуется больше информации, не стесняйтесь обращаться – мы всегда рады помочь!