Взяв хешированный URL и отправив его на новый URL - PullRequest
2 голосов
/ 29 октября 2009

Например, я хотел бы, чтобы мои страницы регистрации, о и контактных страницах разрешались для другого контента, но с помощью хеш-тегов:

три ссылки по одной на регистрацию, контакты и о странице -

  • www.site.com / index.php # о
  • www.site.com / index.php # регистрация
  • www.site.com / index.php # контакт

Есть ли способ использовать Javascript или PHP для преобразования этих страниц в разделенный контент?

Ответы [ 4 ]

5 голосов
/ 29 октября 2009

Хеш не отправляется на сервер, поэтому вы можете сделать это только в Javascript.

Проверьте значение location.hash.

2 голосов
/ 29 октября 2009

Нет серверного способа сделать это. Вы можете работать с AJAX, но это сломает сайт для пользователей, не поддерживающих JavaScript. Вероятно, лучшим способом было бы иметь URL-адреса содержимого на стороне сервера (index.php?page=<page_id>) и переписывать их локально с помощью JavaScript (до #<page_id>), а также обрабатывать загрузку содержимого с помощью AJAX , а затем . Таким образом, вы можете иметь свои хэш-URL-адреса для устройств с поддержкой JS, и все остальные смогут пользоваться сайтом.

Однако это требует некоторой избыточности, потому что вам нужно предоставить один и тот же контент дважды, один раз для включения через AJAX и один раз с правильной компоновкой и всем через PHP.

Если вы просто хотите получить хеш-URL по эстетическим соображениям, но не хотите полагаться на JS, вам не повезло. Семантика URL-адресов против вас: идентификаторы фрагментов на самом деле не должны влиять на контент, на который ссылается URL, а только на фрагмент внутри этого контента. URL-адреса AJAX меняют эту семантику, но нет веских причин делать это, если вам не нужно.

0 голосов
/ 29 октября 2009

Полагаю, у вас, вероятно, есть веская причина, но могу я спросить, зачем вы это делаете? Он нарушает общепризнанный стандарт того, как должны работать хэши в URL-адресах, и это просто напрашивается на проблемы с совместимостью с другими клиентами в будущем.

0 голосов
/ 29 октября 2009

Вы можете использовать глобальные переменные $ _REQUEST PHP, чтобы получить запрошенный URL и проанализировать хэштег ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...