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
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 $(function(){ $(window).on('hashchange', function(){ if(window.location.hash) historyChange(window.location.hash.substr(1)); else historyChange('index'); }) $(window).hashchange(); });
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.
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>
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.
Partager