Problème avec IE7 JQuery, Ajax et CSS
Dans une simple page web j'ai la charge, la nouvelle HTML dans un div à l'aide de load(url)
Fonctionne bien dans la plupart des navigateurs, mais, surprise, surprise, IE7 se comporte différemment.
Tous les autres navigateurs appliquer les pages styles CSS pour le nouvellement chargée HTML mais IE7 ne fonctionne pas.
Des idées?
Ken
Mise à jour
Le nouveau code HTML est juste un fragment de code, par exemple
<div class="classname">
blah blah blah
</div>
Mise à jour je pense que je vais appeler, il est OK.
Ce n'est pas ce que je suis en train de faire, mais une version simplifiée qui reproduit le problème ...
.
.
.
google.load("jquery", "1.3.2");
google.setOnLoadCallback(function() {
$(document).ready(function() {
$("#nav-home").click(function() {
$("#girc-content").load("home.html");
});
.
.
.
Mise à jour Sur la poursuite de l'enquête, le problème semble être un peu plus bizarre que je ne le pensais.
J'ai essayé Steerpike la suggestion parce que j'ai d'abord pensé que le problème était que les styles CSS n'étaient pas appliquées.
Cependant, il apparaît aujourd'hui que seuls certains styles sont appliqués.
Par exemple, la couleur du texte de l'attribut de l' <h2>
balise est appliquée, mais la largeur de l'attribut de l' <div>
balise n'est pas.
- Êtes-vous de chargement HTML morceau du même domaine?
- Pouvez-vous poster un cutdown jquery fragment?
- Vous voulez entendre quelque chose d'effrayant? Après 8 minutes, cette question montre déjà dans une recherche Google...
- Je ne peux pas reproduire votre problème à l'aide de votre code fourni. À l'aide de votre code javascript à charger mon test contenu a IE7 (en fait, IE8 en 7 mode) appliquer les styles CSS je l'ai donné sans problème. Il doit y avoir quelque chose sur le code HTML que vous essayez de charger ou peut-être vos règles CSS?
- Et ouais, clet, c'est assez fou, bien que je pense que quand j'y pense pas très surprenant - j'imagine que google reconnaît la qualité du contenu est ici en général et la façon dont rapidement les changements, du sens qu'ils avaient araignée avec une régularité alarmante 🙂
- Jeff a fait des commentaires dans le blog ou codinghorror (ne me souviens pas qui) qui 70% de l'achalandage du site est google analyse.
- Avoir plus de la réelle balisage sémantique et spécifique de règles css utilisé serait susceptible d'aider si vous rencontrez toujours des difficultés à trouver la solution, kenneedham
- Je crée un petit exemple qui présente le même problème
Vous devez vous connecter pour publier un commentaire.
À la lumière d'informations supplémentaires, prendre 2...
Les styles sont pas appliquées dans la master page HTML ou la page que vous êtes en train de charger? Si ils sont dans la page que vous êtes en train de charger, il semble que IE bandes de script et les balises de style de l'affichage des objets XMLHttpRequest.
Étant donné que ce n'est pas cela et je suis intrigué, j'ai construit un échantillon:
et test2.html:
Cela fonctionne parfaitement pour moi dans IE8 normes et le mode de compatibilité (désolé, pas de IE7 plus).
J'ai remarqué que lorsque j'ai copié votre google onload de l'extrait que vous avez été absent quelques clôture des accolades/parenthèses. Était-ce juste un couper-coller de l'erreur ou un problème avec votre Javascript? Elle pourrait expliquer le comportement incohérent.
Essayer 'toucher " le contenu une fois que vous chargez. La façon la plus simple tend tout simplement à ajouter une chaîne nulle à la innerHTML
Le lien m'a aidé, pour l'essentiel, l'ajout de la balise style dans la tête, même de façon dynamique, applique les styles par ie. J'ai ajouté ce haut de la onready gestionnaire et cela a bien fonctionné.
http://topsecretproject.finitestatemachine.com/2009/09/how-to-load-javascript-and-css-dynamically-with-jquery/
J'ai eu le même problème - IE8 a parfois un problème avec appliquer des styles de contenu chargé en ajax jQuery fonction. Je ne sais pas pourquoi, mais cela m'a aidé: