Присоединение 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
Ответы
Ответ 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...
});
Ответ 2
Google индексирует хэш, если он имеет восклицательный знак в форме: #!dogs
Затем он предполагает, что они ориентированы на 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, который не требует перезагрузки страницы.