Нет - если вы хотите углубить связь с помощью AJAX, вам придется заставить ее работать таким образом. Якорь - единственная часть URL, которая может быть обновлена без перезагрузки страницы. Обычно он также не отправляется на сервер, поэтому всегда обрабатывается браузером.
Одна вещь, которую вы могли бы сделать, это указать фактическую ссылку в теге a
, а затем использовать jQuery для обновления ссылки:
<a href="page1.html" class="ajaxLoad">Page 1</a>
<script>
$(function(){
$("a.ajaxLoad").each(function(){ this.href = '#' + this.href })
});
</script>
Если JavaScript отключен, пользователь будет перенаправлен на страницу «page1.html» при нажатии на ссылку. В противном случае ссылка изменится на якорную, и вы сможете получить ее с помощью кода с глубокими ссылками. Преимущество чего-то подобного заключается в том, что браузеры, не поддерживающие JavaScript, смогут правильно использовать ссылки (в том числе поисковые роботы).
Редактировать: Просто чтобы вы знали, есть несколько вещей, которые вы можете сделать, вместо того, чтобы использовать JavaScript, чтобы изменить его. Например, вы можете прикрепить к обработчику нажатий ссылки и использовать load
или что-то еще, чтобы изменить область, в которую вы хотите загрузить свою страницу.
$("a.ajaxLoad").click(function(e){
e.preventDefault();
$("#content").load(this.href + ' #content');
});