JavaScript: accédez à une nouvelle URL sans remplacer la page actuelle dans l’historique (pas window.location)

Je sais comment utiliser window.location. Le problème est que, (au moins en FF), il efface la page sur laquelle vous vous trouvez de l’historique. par exemple, je suis à la page A, je navigue vers B et window.location est utilisé pour m’envoyer à C. Si à la page C, je clique en arrière, je me retrouve à A, pas à B.

Existe-t-il un autre moyen de naviguer vers une autre page sans effacer la page actuelle de l’historique?

EDIT: Cela n’arrivera pas si vous exécutez le code dans Firebug.

Voici une page super simple (oui je sais que le code est moche, ce n’est pas le vrai code) qui montre le problème:

    
<a href="javascript:$('.foo').html('window.location = "c.html"');">b

EDIT2: jQuery est le problème et setTimeout est la réponse. J’ai ajouté ma solution ci-dessous juste au cas où quelqu’un d’autre se retrouverait dans ce cas bizarre.

EDIT3: Cet exemple est simplifié pour faciliter le test. Dans le cas réel, le gestionnaire de clics effectue un appel Ajax qui renvoie le code HTML. Nous ne pouvons donc pas tout simplifier en écrivant simplement window.location = peu importe. Le code provient du serveur, intégré au HTML.