11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

Pour commencer, veuillez excuser ce titre fort peu explicite, mais j'ai bien du mal à poser un vocabulaire précis sur ce que je cherche à faire.

Donc, commençons pas le commencement :

J'ai une page qui comporte pas mal de contenu, et que j'ai donc scindée en deux onglets. J'utilise une réécriture d'url, ce qui me donne le code suivant pour mes onglets :

<!-- DEBUT ONGLETS -->
<ul class="tabs">
	<li><a href="page-tab1.html" onclick="switchTab('tab1'); return false;">Onglet 1</a></li>
    <li><a href="page-tab2.html" onclick="switchTab('tab2'); return false;">Onglet 2</a></li>
</ul>
<!-- FIN ONGLETS -->


J'ai remis les événements en onclick pour présenter le code plus clairement.
En cliquant sur un onglet, javascript activé ou pas, on a donc le résultat voulu (je vous épargne la fonction switchTab, qui fait une simple requete AJAX)

Seulement voilà : si je charge page-tab1.html, que je clique sur l'onglet tab2, et que je fais F5, je me retrouve à nouveau sur page-tab1.html, alors que, bien sur, je voudrais retomber sur page-tab2.html.

Existe-il, sinon une solution, du moins une piste pour obtenir ce comportement ?

Merci d'avance d'éclairer ma lanterne !
Grégoire
Salut,

je ne suis pas spécialiste d'Ajax mais il me semble que la solution consiste à modifier l'historique du navigateur dynamiquement. Comme je n'ai pas trouvé de lien qui va bien sur le forum je te laisse faire tes propres recherches. Smiley cligne
Ce que propose Heyoan est la bonne solution. Tu dois te baser sur l'utilisation d'ancres afin de permettre la navigation directement par URL ou tout simplement pour conserver l'utilisation des boutons précédent/suivant.
Ok merci, je vais explorer un peu le window.history et je reviens vers vous quand j'aurai une solution viable, ça pourra toujours servir à quelqu'un Smiley smile
Alors, après avoir approfondi le sujet, je suis tombé sur ce qui semble être la solution la plus "simple" :

http://www.clever-age.com/veille/blog/comment-gerer-une-navigation-en-ajax.html

Le problème reste malgré tout entier pour IE7, qui ne stocke pas les ancres dans son historique. Je n'ai pas d'info sur le sujet concernant IE8, mais quand bien même ce serait mieux, IE7 va rester très répandu pendant un moment, ce qui pose un sérieux problème.

Apparemment, certains acharnés sont parvenus à leurs fins sur IE7 en faisant appel à une iframe cachée, ce que j'ai du mal à envisager.

Toutefois, pour ceux que celà intéresserait, la librairie "Really Simple History" semble être plutôt fiable, mais gardez bien en tête que pour IE7, il crée bel et bien une iframe cachée pour mettre à jour l'historique.

http://code.google.com/p/reallysimplehistory/

Je pense tout de même faire quelques tests avec pour me faire une idée, et je repasserai sans doute sur ce sujet si j'obtiens des résultats intéressants/utiles