Verwezen naar het antwoord Mark Brittingham voor hoe te stylen, hoewel ik denk niet dat dat is wat je hier vraagt. Ik zal u de technische details over hoe het werkt (en waarom het is vrij briljant) te geven.
Neem een kijkje op de statusbalk wanneer u de muisaanwijzer over de koppeling Profiel in de kop ...
http://www.facebook.com/profile.php?id=514287820&ref=profile
Dat is waar dat <a> tag wordt gewezen op. Kijk nu naar de adresbalk wanneer u erop klikt ...
http://www.facebook.com/home.php#/profile.php?id=514287820&ref=profile
Let op de "#" fragment identifier / hash ? Dit bewijst in feite dat u niet de pagina hebben verlaten en de eerder verzoek werd gemaakt met AJAX. Ze zijn het onderscheppen van de klik evenementen op deze links, en overschrijven van de standaard functionaliteit met iets van hun eigen land.
Om dit te realiseren met Javascript, alles wat je hoeft te doen is een klik event handler toe te wijzen aan deze banden zoals zo ...
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;
}
}
Een fantastisch voordeel van deze aanpak is dat het laat de knop terug naar functioneel zijn (met een beetje extra bedrog), die van oudsher een pijnlijke neveneffect van chronische AJAX gebruik is geweest. Ik ben niet 100% zeker van wat dit bedrog is, maar ik wed dat het een of andere manier in staat om te detecteren wanneer de browser het fragment identifier wijzigt (eventueel door het controleren van het elke ~ 500 milliseconden).
Even terzijde, verandert de hash tot een waarde die niet kan worden gevonden in de DOM (via element ID) wordt de pagina scroll helemaal naar boven. Om te zien wat ik het over heb: je naar beneden scrollt ongeveer 10 pixels vanaf de bovenkant van Facebook, het blootstellen van de helft van het bovenste menu. Klik op een van de items, zal het springen terug naar de top van de pagina zodra het fragment identifier wordt bijgewerkt (zonder enig venster te herschilderen / opnieuw te tekenen vertraging).