2009-08-03 3 views
3

Je dois sélectionner une iframe avec une requête jquery dans le même iframe. Cependant, je ne veux pas attribuer un identifiant unique à l'iframe et utilisercomment sélectionner un iframe à partir de lui-même avec jquery

$('#'+self.name,top.document) 

(que j'ai vu quelque part). Y at-il une manière relative de faire ceci (quelque chose avec $ (ceci) et traversant ??!?)

Tout est sur le même serveur, il n'y a aucun xss.

Répondre

24

Si vous n'avez qu'un seul iFrame sur votre site, c'est facile. Il suffit d'utiliser ce sélecteur

$('iframe', parent.document) 

Si vous en avez plusieurs, cela devient plus compliqué. Le document iFrame n'a pas d'indice sur lequel des iframes de la page principale il a été chargé, il n'y a donc pas de moyen facile de sélectionner iframe parent avec le sélecteur. Si vous connaissez cependant l'identifiant parent, le nom, la classe ou même l'URL source iframe, vous pouvez utiliser cette information pour modifier le sélecteur ci-dessus afin de ne faire correspondre que le iframe que vous voulez. Vous pouvez également faire correspondre un iframe dont vous avez besoin si vous connaissez son index sur la page principale.

// iframe with MyClass class 
$('iframe.MyClass', parent.document); 

// iframe with MyId id 
$('iframe#MyId', parent.document); 
// even better since id is unique 
$('#MyId', parent.document); 

// iframe with myname name 
$('iframe[name=myname]', parent.document); 

// iframe with specific src 
$('iframe[src=/path/to/iframe/source]', parent.document); 

// second iframe (index is starting from 0) 
$('iframe:eq(1)', parent.document); 
+0

Merci pour la réponse détaillée. Je pensais que je négligeais quelque chose, mais maintenant je vois qu'il n'y a pas de solution facile. – Rado

+0

thanx man .. une solution géniale ... –

+0

Vraiment bonne réponse. Utile, merci. – User2

2

Pour sélectionner le deuxième iframe il doit être:

second iframe (index is starting from 0) 
$('iframe:eq(1)', parent.document); 
Questions connexes