PushState не является операцией над хэшем. Если вы хотите, чтобы он был
pushState меняет URL-адрес без изменения страницы:
Если вы видите историю в виде массива, history = [];
Вы открываете пустую главную страницу браузера и переходите на page1.html
Теперь история = ['page1.html']
.
Если вы запускаете pushState из page1.html с URL-адресом page2.html, история теперь равна ['page1.html','page2.html']
, а в адресной строке отображается page2.html.
Если браузер не поддерживает pushState, он ничего не делает. Итак, для вашего примера:
$("#close").live("click", function(event) {
$("#board").slideUp("slow");
window.history.pushState(null, null, site_url+"/");
return false;
});
А когда вы загружаете свой AJAX:
window.history.pushState(null,null,site_url + "/" + ajax_url);
Если вы хотите работать с хешем, вы можете сделать что-то вроде этого:
$("#close").live("click", function(event) {
$("#board").slideUp("slow");
window.location.href = "#/"
return false;
});
А когда вы загружаете свой AJAX:
window.location.href = "#/" + ajax_url
Если вы используете pushState, имейте в виду, что URL-адреса могут заканчиваться указанием в подпапках, которых у вас нет, и поэтому вам нужен какой-то код переписывания .htaccess