Подтвердить что ты не робот

Присоединение hashtag к URL с javascript

Я хочу создать сайт ajax, не жертвуя SEO. Мой вопрос: Если у меня есть ссылка на моей странице, вот так:

   <a href="#" onclick="location.href='http://example.com/cats'; return false;" id="cats">Cats</a>
   <a href="#" onclick="location.href='http://example.com/dogs'; return false;" id="dogs">Dogs</a>

... при каждом нажатии ссылки. Я хочу обновить адресную строку соответствующим хэштегом. Итак, если щелкнуть ссылку "Кошки", текущее местоположение будет http://example.com/#cats, и я могу использовать это, чтобы показать мой контент ajax. Если javascript выключен или пользователь является поисковой системой, они перейдут непосредственно к/cats

4b9b3361

Ответ 1

Вы можете изменить свойство location.hash, оно изменит текущий идентификатор привязки без перехода от страницы, например, вы могли бы:

<a href="http://mysite.com/cats" id="cats" class="ajaxLink">Cats</a>
<a href="http://mysite.com/dogs" id="dogs" class="ajaxLink">Dogs</a>

Тогда:

$('.ajaxLink').click(function (e) {
  location.hash = this.id; // get the clicked link id
  e.preventDefault(); // cancel navigation

  // get content with Ajax...
});​

Ответ 3

Вы не можете установить window.location.href без перезагрузки страницы в javascript по соображениям безопасности.

Из того, что я видел, некоторые люди говорят, что Google индексирует # URL-адреса, но они не будут считаться отдельными страницами, и я думаю, что это не то, что вы хотите. У меня также очень мало опыта работы с SEO.

Ответ 4

Хотя простота лучше, но если вы просто хотите автоматизировать этот процесс или сделать его обобщающим, вы можете использовать этот Lite-плагин jquery.hashTag.js

$('a').hashTag({
    source: function() {
      return $(this).attr('id');
    }
  });

Просто поместите этот фрагмент внутри $(document).ready.

Это сделает остальную часть самой работы. Как автоматический щелчок по ссылке, идентификатор которой был предоставлен как хэш.

Ответ 5

BenMills, никто не указал location.href, это о location.hash, который не требует перезагрузки страницы.