Выкладываю действительный код:
function History ()
{
this.Uri = window.location.href;
this.options = this.parseGetParams;
this.history = window.history;
this.modalWindow = false;
this.parseGetParams = function ()
{
var $_GET = {};
var __GET = window.location.search.substring(1).split("&");
for(var i=0; i<__GET.length; i++)
{
var getVar = __GET[i].split("=");
$_GET[getVar[0]] = typeof(getVar[1])=="undefined" ? "" : getVar[1];
}
return $_GET;
}
this.loadPage = function (pagename, options)
{
$.ajax({
url : "/engine/ajax/loadPage.php",
type : "POST",
async : true,
dataType : "json",
data: "pagename="+pagename+"&options=" + JSON.stringify(options),
success: function (data) {
if(data.success == true)
{
log("Пришел код страницы");
var page = data.page;
var window = data.window;
if(page.load)
{
$('.content').html(page.content);
$('title').html(page.title);
}else if(page.load == false)
{
alert("Невозможно загрузить страницу");
}
if(window.load)
{
$('title').html(window.title);
this.windowOpen(window.content);
this.modalWindow = true;
}
}
},
error: function (a, b) {
alert("При загрузке страницы произошла ошибка: " + a.responseText);
}
});
return false;
}
this.init = function ()
{
$('a[class=link]').on('click', function(event)
{
event.preventDefault();
var targetLink = $(this).attr('href');
var pgname = targetLink.substr(1) == "" ? "main":targetLink.substr(1);
var pgname = pgname == window.location.pathname.substr(1) ? null:pgname;
window.history.pushState({uri:pgname}, null, targetLink);
this.loadPage(pgname, this.options);
return false;
});
$(window).bind('popstate', function(event)
{
var uri = this.history.state.uri.substr(1);
if(this.modalWindow.length && this.modalWindow)
{
this.closewindow();
}
this.loadPage(uri);
});
}
this.closewindow = function ()
{
var bg = document.getElementById('black_bg');
bg.style.display = "none";
document.body.style.overflowY = "scroll";
document.body.style.paddingRight = "0px";
this.history.pushState({uri:targetLink}, null, targetLink);
this.modalWindow = false;
return false;
}
return false;
}
И вызов этой лабуды:
<script type="text/javascript">
var history = new History();
history.init();
</script>
<a class="link" href="/main">Клац</a>
И текст ошибки: