2010-09-14 3 views
8

Comment ajouter un événement click pour <p> éléments en iframe (en utilisant jQuery)Comment ajouter un événement de clic aux éléments p dans iframe (en utilisant jQuery)

<iframe frameborder="0" id="oframe" src="iframe.html" width="100%" name="oframe"> 
+1

duplication possible de [Définir un événement sur l'élément iFrame avec jQuery] (http://stackoverflow.com/questions/2218404/define-an-event-on-iframe-element-with-jquery) –

+0

essayez-vous de faire ceci sans ajouter de code au contenu de l'iframe? – Munzilla

Répondre

7

Il y a une fonction jQuery spéciale qui fait que: .contents(). Voir l'exemple pour savoir comment cela fonctionne.

+1

Merci, $ ('# iframe'). Contents(). Find ('p'). Click() – faressoft

1

Votre meilleur meilleur pari est d'invoquer le iFrame Tant que cela fait partie de votre domaine.

iframe.html

<html> 
    <head> 
     <script> 
      window.MyMethod = function() 
      { 
       $('p').click(); 
      } 
     </script> 
    </head> 
    <body></body> 
</html> 

Et puis utilisez

document.getElementById('targetFrame').contentWindow.MyMethod(); 

Pour appeler cette fonction.

est une autre façon d'accéder au iframe via window.frames.

<iframe name="myIframe" src="iframe.html"/> 

et le javascript

child_frame = window.frames['myIframe'].document; 
$('p',child_frame).click(function(){ 
    alert('This click as bound via the parent frame') 
}); 

Cela devrait fonctionner correctement.

+1

Pourquoi le vote à la baisse? – RobertPitt

0

En donnant une référence au document IFrame comme second paramètre à jQuery, qui est le contexte:

jQuery("p", document.frames["oframe"].document).click(...); 
0

Pour accéder à un élément à l'intérieur d'un iframe, une approche simple JavaScript est comme suit:

var iframe = document.getElementById("iframe"); 
var iframeDoc = iframe.contentDocument || iframe.contentWindow; 
// Get HTML element 
var iframeHtml = iframeDoc.getElementsByTagName("html")[0]; 

Maintenant, vous pouvez sélectionner un élément en utilisant cet élément html

iframeHtml.getElementById("someElement"); 

Maintenant, vous pouvez lier n'importe quel événement que vous voulez pour cet élément. J'espère que cela t'aides. Désolé pour un anglais incorrect.

Questions connexes