HTML5 History API

bancov96

Registered
[js]
$(function () {
var container = "#body";
var container_history = new Array();

$('a').live('click', function(e) {
e.preventDefault();

var _path = " " + container + " > *";

container_history.push($(_path)[0]);

$(container).load(this.href + _path, function(response, status, xhr) {

switch(status) {
case 'success':
var title = $(response).filter('title').text();
document.title = title;

var url = '';

if (history && history.pushState) {
history.pushState(null, title, url);
}
break;
case 'error':
container_history.pop();
break;
}

});

});

$(window).bind('popstate', function() {
if (container_history.length) {
var previous_page = container_history.pop();
$(container).html(previous_page);
}
});
});
[/js]

Въпроса е как да взема стойността на href атрибута на линка, който натиснат (стойността ще присвоя на променливата url и ще я ползвам като трети параметър на pushState, за да променя URL адреса на адрес бара на браузъра. Може да е нещо елементарно, но в момента не се сещам.
 
Хайде де, нали искате да трупате точки, на елементарните въпроси отговаряте, заради цифрата, но този го подминавате...
 
Както се взема стойността на всеки един атрибут: $(this).attr('href'). Не използвай "this.href", тъй като някои browsers rewrite-ват стайността, а jQuery си има fix-ове за това. Също вземи стойността извън response функцията, тъй като в нея this не ти е линка, а window.
 

Back
Горе