HTML-якоря, которые работают с других страниц без перезагрузки главной страницы

Мое навигационное меню создается в одном файле PHP и включается в каждую страницу. Некоторые из ссылок являются просто якорями на главной странице. Когда пользователь находится на другой странице, эти ссылки должны вести их на домашнюю страницу, а затем на соответствующую привязку. Однако, если пользователь уже находится на домашней странице, было бы хорошо, если бы страница не должна была перезагружаться.

Это перезагрузит несмотря ни на что:

<a href="/home#anchor">link</a>

Это не перезагрузит, если вы уже находитесь на домашней странице, но не работает с других страниц:

<a href="#anchor">link</a>

Есть ли способ достичь лучшего из обоих миров без использования JavaScript?

3 ответа

Решение

Хорошо, я понял это. У меня была папка под названием home, Так что если вы перешли к http://example.com/home это займет у вас index.php в home папка. У меня также был внутренний якорь на index.php, Если навигационная ссылка имела /home#anchor как HREF, то страница будет перезагружаться при нажатии на нее. Я обнаружил, что если ссылка /home/#anchor (с дополнительной косой чертой), то при нажатии на ссылку страница не перезагружается. Надеюсь, это поможет кому-то еще.

Для тех, кто задается вопросом, как это сделать для домашней страницы WordPress, я обнаружил, что использование прямой косой черты без ничего перед ней работает:

      /#anchor

Если вы используете плагин Polylang и формат заголовка URL-адресов, добавьте только:

/en/somepage/#something or /fr/somepage/#something и т.п.

чтобы избежать перезарядки

Другие вопросы по тегам