Je vais prendre des risques et suggérer que les réponses proposées jusqu'à présent ne sont pas possibles.
Si cet iframe a effectivement une src="somepage.html" (ce que vous auriez dû indiquer, et si ce n'est pas le cas, quel est l'intérêt d'utiliser iframe ?), alors je ne pense pas que Jquery puisse manipuler directement le html à travers les cadres dans tous les navigateurs. D'après mon expérience de ce genre de choses, la page qui contient le cadre ne peut pas appeler directement des fonctions à partir de la page iframe ou établir un quelconque contact Javascript avec celle-ci.
Votre "somepage.html" (la page qui se charge dans l'iframe) doit faire deux choses :
- Transmettez un objet à la page de référence qui peut être utilisé comme pont.
- Avoir une fonction pour définir le HTML comme vous le souhaitez
Ainsi, par exemple, somepage.html pourrait ressembler à ceci :
<!doctype html>
<html>
<head>
<script src="jquery.js">
</script>
<script language=JavaScript>
<!--//
var bridge={
setHtml:function(htm) {
document.body.innerHTML=htm;
}
}
$(function() { parent.setBridge(bridge); });
//--></script>
</head>
<body></body>
</html>
et la page d'accueil pourrait ressembler à ceci :
<!doctype html>
<html>
<head>
<script src="jquery.js">
</script>
<script language=JavaScript>
<!--//
var bridge;
var setBridge=function(br) {
bridge=br;
bridge.setHtml("<div>A</div><div>B</div><div>C</div>");
}
//-->
</script>
</head>
<body><iframe src="somepage.html"></iframe></body>
</html>
Cela peut sembler un peu alambiqué mais il peut être adapté dans un certain nombre de directions et devrait fonctionner au moins dans IE, FF, Chrome, et probablement Safari et Opera...