как получить параметр, как mysite.com/myaction/#someanchor с помощью php и javascript - PullRequest
1 голос
/ 04 апреля 2009

Например, я скрываю комментарии по умолчанию.

Так что, если я найду #comments, я буду знать, что мне нужно показать их.

Можно ли поймать php или javascript при загрузке страницы?

Ответы [ 4 ]

2 голосов
/ 04 апреля 2009

С JavaScript вы можете получить доступ к свойству location.hash.

window.onload = function(){
  alert(location.hash);
}
1 голос
/ 04 апреля 2009

PHP не будет знать о бите #comments, поэтому вам придется использовать javascript для реализации функциональности

0 голосов
/ 04 апреля 2009

PHPExperts, к сожалению, неправильно ..

Часть #fragmant любого URL фактически не отправляется на сервер. Браузер удалит все после # при выполнении запроса.

Предложение dcaunts находится на правильном пути, вы действительно можете использовать его только в javascript.

0 голосов
/ 04 апреля 2009

В php вы можете получить доступ ко всем частям URL, используя функцию parse_url () http://php.net/parse-url

<?php
  $url = 'http://username:password@hostname/path?arg=value#anchor';

  $url = parse_url( $url );

  echo $url['fragment'];  // will output 'anchor'
?>

Edit: Мои извинения, хотя мой пример работает и подходит для сгенерированных URL-адресов на стороне сервера, вы правы в контексте этого вопроса. Фрагменты - это не тот метод, которым я широко пользуюсь, хотя я использую parse_url довольно часто, поэтому он сразу приходит на ум.

Чтобы придать дополнительный интерес этому конкретному вопросу, я бы использовал jQuery для выявления комментариев, которые изначально были скрыты. Он прост в использовании и имеет отличную анимацию, если вы ищете что-то подобное.

, например

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
    $(document).ready( function() {
        $("a.toggleComments").click( function() {
            $(".comment").toggle();
            return false;
        });
    });
</script>
<style>
    .comment {
        display: none;
    }
</style>
</head>
<body>
  <p>Some text that is shown by default. <a href="#" class="toggleComments">Toggle Comments</a></p>
  <p class="comment">A comment paragraph, originally hidden</p>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...