Bonjour,

Une fois n'est pas coutume... ça bloque sous IE.

Je m'explique, je suis sur un site avec beaucoup d'ajax (appels avec Jquery) et donc je fais une navigation avec hashchange.

La navigation fonctionne correctement. Que ce soit sous IE, firefox,...

Par contre, lorsque j'ouvre une page dans un nouvel onglet, la fonction hashchange est appelée 2 fois dans cette nouvelle page alors que l'url ne change pas entre temps. Et ceci UNIQUEMENT sous Internet Explorer.

Pour que ce soit plus clair voici le code :

Partie hashchange


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
$(function(){
  $(window).on('hashchange', function(){
 
		if(window.location.hash)
			historyChange(window.location.hash.substr(1));
                else
			historyChange('index');
	})
 
	$(window).hashchange();	
});
puis lorsque j'ouvre un nouvel onglet, je détecte que c'est un nouvel onglet, et donc je charge la page d'accueil qui contient :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
<?php include('head.php'); ?>
 
<div id="contener"></div>
 
<?php  include('bottom.php');  ?>
 
 
<script type="text/javascript">
  window.location.hash = '<?php echo $_SESSION['page'];?>?<?php echo $_SESSION['variable'];?>';
</script>
Comme on peut le voir ci-dessus, je charge la structure de la page, puis je modifie l'URL pour que la page souhaité soit chargé dans le contener via hashchange.

Pour information, la fonction "historyChange" est un appel ajax

Je tourné le problème dans tous les sens et je n'arrive pas à le résoudre. Dès que j'ouvre un lien dans un nouvel onglet alors la page demandé est chargée deux fois en passant deux fois par hashchange alors que l'url ne change pas

Sous Firefox la page est chargée qu'une seule fois.

J'espère avoir été assez clair et je vous remercie d'avance pour l'attention que vous pourrez prêter à ce problème.