, я запускаю веб-сервер Apache на Ubuntu 20.04.
У меня есть domain.com
, который направляет клиентов на index.html
. На сайте есть кнопка, при нажатии на которую открывается всплывающий-виджет календаря. Я бы хотел, чтобы люди, переходящие на domain.com/schedule
, попадали на главную страницу, как если бы они нажали эту кнопку.
Как я могу сделать это просто?
Вам обязательно нужно вызвать всплывающее-up на стороне клиента. Вот краткий пример, который вы можете легко попробовать и настроить (и защитить)в соответствии с вашими потребностями :
<html>
<head>
<script type="text/javascript">
function isScheduleRequested() {
if(window.location.href.includes('/schedule')) {
document.getElementById('button').click();
}
}
</script>
</head>
<body onload='isScheduleRequested();'>
<button type="button" name="button" id="button" onclick="alert('Opening calendar');">Open calendar</button>
</body>
</html>
. Вообще говоря, это проверяет, содержит ли URL-адрес текущей страницы подстроку '/schedule' (. ]в любом месте, не обязательно в конце, даже не один раз), а если да, то вызвать событие кнопки click
.
Бит onload='isScheduleRequested();
нужен только для того, чтобы убедиться, что сценарий javascript выполняется после загрузки тела (и существования элемента кнопки).
Вы даже можете попробовать это на своем компьютере. Сохраните этот код как «index.html» и откройте его в браузере. Ничего не произойдет, пока вы не нажмете кнопку. Однако, если вы добавите ?q=/schedule
к URI, будет запущено событие нажатия кнопки. (В этом примере нам нужно передать строку /schedule
как часть параметра GET, так как нет ни доменного имени, ни сервера, ни чего-либо необычного. ).
На сервере Apache вы можете создать правило перезаписи для рендеринга того же index.html по другому пути, но отображение всплывающего-виджета — это то, что вам нужно решить на стороне приложения (, например. JavaScript может использовать Web API URL.pathname для обнаружения посещения domain.com/schedule
URL). Когда ваше приложение определяет, что пользователь посетилdomain.com/schedule
(на основе имени пути), оно может вызвать действие открытия всплывающего виджета-up.