Я выхожу здесь на передний план и предполагаю, что предложенные ответы пока невозможны.
Если этот iframe на самом деле имеет src = "somepage.html" (который вы должны были указать, а если нет, какой смысл использовать iframe?), То я не думаю, что Jquery может напрямую манипулировать html через кадры во всех браузерах. Основываясь на моем опыте такого рода вещей, содержащаяся страница не может напрямую вызывать функции или устанавливать какие-либо Javascript-контакты со страницей iframe.
Ваш "somepage.html" (страница, которая загружается в iframe) должен сделать две вещи:
- Передача некоторого объекта на содержащую его страницу, которую можно использовать как мост.
- Есть функция для установки HTML, как вы хотите
Так, например, somepage.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>
и содержащая страница может выглядеть следующим образом:
<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>
Это может показаться немного запутанным, но его можно адаптировать по ряду направлений, и оно должно работать, по крайней мере, в IE, FF, Chrome и, возможно, в Safari и Opera ...