IE l'histoire de pousser l'état
-
13-12-2019 - |
Question
J'ai une page web où l'utilisateur a la possibilité d'afficher les termes et conditions sans avoir à recharger la page, via AJAX.Ce qui, en soi, n'est pas un problème, cependant, je suis aussi en train d'essayer de pousser une histoire de l'état.
Cela fonctionne bien dans la plupart des navigateurs, sauf dans IE.Pour des raisons inexplicables, là, le contenu est chargé via AJAX, mais aussi, un nouvel onglet s'ouvre avec la page précédente.Comment puis-je résoudre ce problème?
Vous pouvez voir un exemple sur cette page http://galaxy-battle.de ), essayez de cliquer sur "T&c" dans la "Jointure"-box.
La solution
IE9 et ci-dessous ne prend pas en charge la poussée .Vous avez une exception lorsque vous appelez la ligne suivante
window.history.pustate (null, null, pathfullpage);
script438: l'objet ne prend pas en charge la propriété ou la méthode 'pushstate' ? Termes_and_conditions, ligne 62 caractère 21
Vous pouvez probablement être intéressant à regarder des solutions de contournement discutées à émuler / polyfill historique.pustate () dans IE
Autres conseils
Vieux mais toujours d'actualité la question.Je veux juste dire que je recommanderais pas pour essayer d'imiter pushState sur IE.
Au lieu de cela, vous pouvez utiliser une fonction de détection :
si
history.pushState
n'est pas nul (le navigateur prend en charge pushState), vous l'utiliser et charger votre contenu avec d'astucieux javascriptsi
history.pushState
est null (navigateur ne supporte pas les pushState), vous modifiez l'url / suivez le lien et faire un changement de page
Bien sûr, cela signifie IE<=9 utilisateurs ne disposent pas de toutes les animations superbes d'autres utilisateurs.Mais la question que je veux poser est la suivante :voulez-vous voir sur le net des liens vers votre site web contenant de l' #
?
Les utilisateurs peuvent penser que votre application est utile et coller des liens sur le web.C'est cool, parce qu'elle vous apporte quelques google jus.Maintenant, si l'utilisateur utilise IE et que vous utilisez history.js, l'utilisateur doit coller un lien contenant une table de hachage.
Ce sera défaites bonne indexation des pages publiques de votre application, et va aussi moche.Mon opinion personnelle est que le fait d'avoir un js animation ou lightbox pour les utilisateurs de IE ne valent pas ceux du commerce hors.