Прикрепление хэштега к URL с помощью JavaScript - PullRequest
31 голосов
/ 02 марта 2010

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

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

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

Ответы [ 5 ]

44 голосов
/ 02 марта 2010

Вы можете изменить свойство 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...
});​
16 голосов
/ 20 марта 2011

Google будет индексировать хэш, если у него есть восклицательный знак в форме: #!dogs

Затем предполагается, что они ориентированы на AJAX:

0 голосов
/ 10 сентября 2013

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

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

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

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

0 голосов
/ 06 августа 2013

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

0 голосов
/ 02 марта 2010

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

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

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