9
votes

Comment trouver un div à l'intérieur d'un iframe

J'essaie d'utiliser JQuery pour trouver un div dans une iframe. Y a-t-il une meilleure façon que celle que j'utilise ci-dessous? XXX Pré>

J'ai essayé presque une semaine pour faire ce travail: P>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">


4 commentaires

Pourquoi pas $ ('# iframe #mydiv') ?


@Polybos C'est un document différent, donc ne sera pas trouvé avec ce sélecteur.


Qu'est-ce qui ne fonctionne pas? Qu'est-ce que #customer ? Quel est le iframe ?


oublie le #Ifframe. Dans mon cas, l'IDMA ID est #Customer. Trouvez-vous un problème dans la fonction ci-dessus. Cela fonctionne bien dans Firefox. Mais dans IE, il montre un problème dans la ligne de fichiers JQuery 4089 (fonction de contenu ()). Merci pour votre aide


3 Réponses :


13
votes

Je ne pense pas que le jQuery peut accéder au contenu du contenuwindow / du document de cette manière. Dans le passé, je devais faire cela: xxx

** Notez que ceci.contentwindow || Ceci.ContentDocument est requis pour fonctionner correctement sur IE et la plupart des autres navigateurs. Une fois la fenêtre de contenu obtenue, vous devez sélectionner le document. Ensuite, vous pouvez utiliser JQQUERY pour manipuler ou traverser le DOM, mais uniquement si la source de l'iframe est dans le même domaine.

** Mise à jour pour corriger l'erreur dans laquelle nous ne spécifions pas le document après avoir obtenu le contenuwindow / Document.


4 commentaires

Cela devrait être ceci.contentwindow.document , je pense.


'Ceci.contentdocument.document' est null ou pas un objet


@rajaishbt ceci.contentdocument || cela.contentwindow.document


Désolé, essayez-le comme mis à jour. Je pensais que contentwindow et contentdocument où sémantiquement analogue.



4
votes

Cela ne fonctionnera que si la source IFrame est dans le même domaine que votre page, sinon le navigateur ne le permettez pas pour des raisons de sécurité


0 commentaires

-1
votes

Utiliser le contexte du sélecteur:

var frame = $('#frame_id');
var div = $('#mydiv', frame);


1 commentaires

JQuery ne peut pas traverser directement le document de contenu d'un iframe, de sorte que cela ne fonctionnera pas.