мини демо могу привести сейчас, тоесть то на чем тестил:
создаем файл например index.html c содержимым:
<!DOCTYPE html>
<html>
<head>
<title>...</title>
<script type="text/javascript" src="history-1.0.3.js"></script>
</head>
<body>
<div id="popstatus"></div>
<button type="button" onclick="history.pushState({page: 3}, 'title 3', '/site/bla.php?'+Math.random());">Change URL now!</button>
<script type="text/javascript">
if ( window.addEventListener ) {
// for Other event
window.addEventListener('popstate', function( e ) {
var loc = e.location || document.location;
document.getElementById('popstatus').innerHTML += 'popstate change to url: ' + loc + '<br />';
}, false);
} else if ( window.attachEvent ) {
// for IE event or browser not supported addEventListener
window.attachEvent('onpopstate', function( e ) {
var loc = e.location || document.location;
document.getElementById('popstatus').innerHTML += 'popstate change to url: ' + loc + '<br />';
});
}
</script>
</body>
</html>
тонкость это то что мы обращаемся к document.location в во время перехвата popstate немного иначе. Собственно вот и вся модель библы... в остальном все как обычно... в параметре гет есть еще пару настроек, это:
redirect -
true/
false перенаправлять на основную ссылку или нет
basepath - указываем директорию в которой находиться сайт. По умолчанию просто корень "/"