7
votes

JQuery NOconfict ne fonctionne pas dans IE8 uniquement

J'ai un site Web utilisant la framework Protype et je cherche à utiliser un plugin JQuery. Tout fonctionne tout simplement pas dans IE8. Cela fonctionne dans IE7 qui m'étonne. Une idée de ce qui a peut-être faux?

IE8 me donne un objet ne prend pas en charge cette propriété ou cette méthode où la ligne jQuery.noconflic (); est xxx

i aussi fatigué ce qui suit: var $ j = jquery.noconflic (); var j = jquery.noconflic ();

tout ce qui fonctionne tout seul in IE8 seul.


3 commentaires

Pouvez-vous montrer le code complet comprenant où vous incluez JQuery et le plugin NOCONFLICT?


Je modifie le code. J'ai le script src avec dans le corps.


Cela semble arriver si NOCONFLICT () est appelé avec un retard. Voir aussi forum.jquery.com/topic/... (modération d'attente à partir de l'heure de ce commentaire)


8 Réponses :


1
votes

ive a eu un problème similaire dans le passé et a travaillé autour de lui en utilisant l'émulation IE7 META TAG

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />


1 commentaires

Ne prenez pas cela personnellement mais c'est une idée terrible. La fonction "NOCONFLICT" fonctionne bien dans IE8.



0
votes

J'ai eu des problèmes étranges dans le passé avec IE8 sur des machines avec plusieurs versions d'IE installées. Dans mon cas, une erreur apparaissait lorsque j'ai essayé d'ouvrir un lien dans une nouvelle fenêtre via JavaScript. Le même code a fonctionné bien sur IE6 et 7, et une machine avec seulement IE8 installée cela bien.


0 commentaires

0
votes

C'est un problème que j'ai également découvert. La façon dont j'ai réparé qu'il était de mettre à niveau ma jQuery à 1.4. La version 1.3.2 échoue avec un nouveau prototype sur IE8. Désolé, cette réponse est en retard.


0 commentaires

6
votes

Je rencontre également JQuery-1.4.4.js. Tout fonctionne bien sauf dans IE8. IE8 ne reconnaît pas JQuery () rien. J'ai pu résoudre le problème en chargement de jQuery et en cours d'exécution $ .noconflic () avant le chargement de prototype et tout fonctionne bien sur tous mes navigateurs de test, y compris IE8. Cette séquence est contraire à la documentation de JQuery et je suis donc nerveuse à ce sujet. Vous ne trouvez rien sur le site JQuery à ce sujet.

T22Harris


2 commentaires

Je peux confirmer que je recevais des erreurs d'objet nulle avec JQuery 1.4.4 sous IE8 lorsque le prototype a été chargé en premier. Je charge maintenant JQuery d'abord et je fais immédiatement noconflic () et maintenant mon application fonctionne à nouveau!


Merci, déplaçant JQuery et le $. NOCONFLICT () Appelez avant que les autres Libs résolues pour moi aussi. Le même problème et la même solution s'appliquent à JQuery-1.5. Il me semble que c'est lié au document. DétectionAry Détection pour IE ..



0
votes

J'ai exactement la même erreur avec 1.4.4 et 1.4.3 Chargement de jQuery après le prototype et uniquement dans IE8, pas même dans IE7 ou IE6 JQuery 1.4 a résolu ceci pour moi.


0 commentaires

2
votes

La seule façon dont j'ai pu résoudre ce problème, pour IE8 (qui était le seul avec le problème) et d'autres navigateurs devaient mettre JQuery et le NOCONFLICT () appellent dans la tête immédiatement après initialisation de l'autre bibliothèque. Comme si:

var $ j = jquery.noconflic ();

... suivi de tout autre script qui utilise JQuery ou prototype.


0 commentaires

2
votes

J'ai eu un problème similaire. La solution que j'utilise actuellement est de sauvegarder la variable $ dans une variable temporaire, chargement de jQuery (je charge jQuery à partir du code JS), exécutant le code dépendant JQuery (avec jQuery.noconflic), le réglage de la variable $ de retour.

C'est sale, mais il semble avoir fait le tour pour moi.

Ma fonction qui ajoute jQuery (si nécessaire) est la suivante: xxx

La LoadTohead charge simplement le script dans l'étiquette de la tête quelque part et exécute la fonction de rappel lorsque le script est chargé.

la plupart de ce code que j'ai trouvé en ligne et la souris. Malheureusement, je ne me souviens pas d'où donner le crédit dès maintenant.


0 commentaires

1
votes

a juste eu le même problème. IE 8 n'aime pas:

var jq = jQuery.noConflict();


0 commentaires