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