2010-02-22 2 views
0

Je rencontre des problèmes avec jQuery après le chargement d'une page via un iframe.jQuery iframe issue

Voici comment cela fonctionne. Mainpage.php a un iframe en son sein que j'utilise pour télécharger des photos/fichiers. Sur Mainpage.php il y a un div que j'utilise pour afficher les photos/fichiers. Le div est peuplé par un appel ajax qui récupère le code HTML et le place dans la div. Tout fonctionne bien quand je viens à Mainpage.php et cliquez sur le lien photos, qui exécute l'Ajax et charge les photos/fichiers.

Problème: J'ai un "nouveau" bouton qui affiche l'iframe. À l'intérieur de la page iframe, j'utilise le formulaire de téléchargement pour télécharger des photos sur le serveur, puis en cas de succès, je renvoie une chaîne javascript qui exécute le même code Ajax pour afficher la photo dans le bon div. Tout fonctionne et il mettra à jour le div sur Mainpage.php, Cependant, les photos sont affichées, mais la fonctionnalité jQuery ne fonctionne plus, donc ma fonctionnalité de tablesorter cesse de fonctionner (erreur: document est nul), et les photos ne s'affichent pas avec leur bordure (j'utilise css lié à une classe, que jQuery applique aux éléments pour afficher la bordure). J'utilise visuallightbox pour ma galerie de photos et le jQuery JavaScript utilisé pour montrer les images ne fonctionne plus. L'erreur que je reçois avec le chargement de la photo est: "uncaught exception.....NS_ERROR_INVALID_POINTER".

Toutes les idées pour résoudre ce problème seront les bienvenues. Merci.

Répondre

0

Il est difficile de dire exactement de quoi vous parlez, mais je soupçonne que le problème peut être dû au fait que le code s'exécute dans votre iframe (le code qui s'exécute dans la réponse du POST) est dans une page différente, avec un objet principal jQuery différent du code dans votre page parente. Essayez de configurer les choses de telle sorte que le code iframe appelle le parent pour lui transmettre les informations. Sachez que (surtout dans IE) vous ne voulez vraiment pas instancier des objets dans votre iframe et ensuite les transmettre à la fenêtre parente. Dès que l'iframe est récupéré, IE commence à paniquer chaque fois que vous faites référence à ces objets depuis la fenêtre parent. N'oubliez pas que vous pouvez accéder à l'objet jQuery de la fenêtre parent à partir de l'iframe sous la forme window.parent.$.

+0

Merci point. J'ai compris que le problème avait à voir avec un fichier .js qui a été écrit par un tiers qui utilise jquery. Je suis arrivé à la div parent comme vous l'avez suggéré, puis j'ai trouvé que la seule façon d'afficher les choses correctement était de placer un lien hypertexte et de recharger le code HTML. – Ronedog