Consultați răspunsul Mark Brittingham pentru modul în care să-l stil, deși nu cred că este ceea ce se cere aici. Eu vă voi da detaliile tehnice cu privire la modul în care funcționează (și de ce este destul de genial).
Uitați-vă la bara de stare atunci când treceți peste link-ul de profil în antetul ...
http://www.facebook.com/profile.php?id=514287820&ref=profile
Aceasta este în cazul în care tag-ul <a> este indicat. Acum, uita-te la bara de adrese atunci când faceți clic pe el ...
http://www.facebook.com/home.php#/profile.php?id=514287820&ref=profile
Observați "#" identificator de fragment / hash ? Acest lucru se dovedește practic că nu au părăsit pagina și cererea anterioară a fost făcută cu Ajax. Ele sunt intercepteze evenimentele clic pe aceste link - uri, și imperative funcționalitatea implicită cu ceva din propria lor.
Pentru a face acest lucru cu Javascript, tot ce trebuie să faceți este să atribuiți un handler eveniment clic pentru aceste link-uri, cum ar fi atât de ...
var header = document.getElementById('header');
var headerLinks = header.getElementsByTagName('a');
for(var i = 0, l = headerLinks.length; i < l; i++) {
headerLinks[i].onclick = function() {
var href = this.href;
//Load the AJAX page (this is a whole other topic)
loadPage(href);
//Update the address bar to make it look like you were redirected
location.hash = '#' + href;
//Unfocus the link to make it look like you were redirected
this.blur();
//Prevent the natural HTTP redirect
return false;
}
}
Un beneficiu fabulos acestei abordări este că permite butonul din spate să fie funcțional (cu o șmecherie pic adăugată), care a fost în mod tradițional un efect secundar dureros de utilizare AJAX cronice. Nu sunt 100% sigur de ceea ce această șmecherie este, dar pun pariu că e cumva capabil să detecteze când browser-ul modifică identificatorul fragmentului (eventual verificând-o dată la ~ 500 milisecunde).
Ca o notă, schimbarea hash la o valoare care nu poate fi găsită în DOM (prin elementul ID) va derula pagina tot drumul spre partea de sus. Pentru a vedea ce vorbesc despre: derulezi aproximativ 10 pixeli din partea de sus a Facebook, expunând jumătate din meniul de sus. Dați clic pe unul dintre elementele, acesta va sări înapoi până la partea de sus a paginii de îndată ce identificatorul fragmentului devine actualizat (fără nici o vopsi fereastră / redesenare de întârziere).