Ответ 1
Я привел пример, используя 3 файла HTML. Внешней является test.html, которая имеет iframe, содержащий iframe1.html. В свою очередь iframe1.html содержит iframe, содержащий iframe2.html. Я надеюсь, что это такая настройка, которую вы имеете в виду.
В основном вы можете вызвать функцию iframe, используя iframe.contentWindow.myfunc();
Используя contentWindow.document, вы можете получить доступ к iframe второго уровня.
Пример функции doit() вызывает функцию в родительском, первом iframe и втором iframe.
Надеюсь, это поможет!
<!------- test.html -------->
<html>
<head>
<script type="text/javascript">
function parent_function() {
alert('parent');
}
function doit() {
parent_function();
document.getElementsByTagName('iframe')[0].contentWindow.iframe1_function();
document.getElementsByTagName('iframe')[0].contentWindow.document.getElementsByTagName('iframe')[0].contentWindow.iframe2_function();
}
</script>
</head>
<body>
main
<a href="javascript:doit();">do it</a>
<iframe src='iframe1.html'>
</body>
</html>
<!------- iframe1.html -------->
<html>
<head>
<script type="text/javascript">
function iframe1_function() {
alert('iframe1');
}
</script>
</head>
<body>
frame1
<iframe src='iframe2.html'>
</body>
</html>
<!------- iframe2.html -------->
<html>
<head>
<script type="text/javascript">
function iframe2_function() {
alert('iframe2');
}
</script>
</head>
<body>
frame2
</body>
</html>