Ok, soyez indulgents avec moi les gars, la préparation de celui-ci est longue.
J'ai une page simple. Elle charge une iframe. Dans cette iframe se trouve un formulaire. Je veux que le formulaire à l'intérieur de l'iframe interagisse avec la page parent via jQuery.
Cela fonctionne correctement dans Firefox, Chrome et Safari. Voyez par vous-même ici :
http://dl.dropbox.com/u/58785/iframe-example/index.htm
Cependant, dans Internet Explorer 6/7/8/9, cela ne fonctionne pas. L'événement de chargement se déclenche, mais jQuery ne peut pas prendre en charge les éléments à l'intérieur de l'iframe.
J'utilise le deuxième argument "context" de la fonction jQuery pour définir le contexte du sélecteur, comme ceci : var form = $('#myform'), this.contentDocument)
Voici ce qui est bizarre . En utilisant les outils de développement F12 dans IE9, je peux définir un point d'arrêt dans mon JavaScript et voir comment IE évalue le JavaScript. Si je passe la souris sur this
je peux voir qu'il y a une contentDocument
propriété. MAIS si je passe la souris sur this.contentDocument
il me dit que c'est indéfini.
Parce qu'il est indéfini, le sélecteur jQuery ne renvoie aucun élément. Encore une fois, cela ne se produit que dans IE. Et l'IFRAME est sur le même domaine, donc ce n'est pas un problème de same-origin.
Des conseils ?