js 与 iframe

使用环境为IE6,其它环境下面还没有试过。

 

在页面中使用iframe能为开发带来很多便利,而且iframe标签也被主流的游览所支持。下面是如何在父页面调用子页面的元素及函数:

有两种方法可以调用子页面的元素:

1.通过id获取iframe标签。不过我不知道后面的contentWindow是个什么东西,

document.getElementById('child').contentWindow.document.getElementById('content');

2.这个方式要好理解一点:

document.frames['child'].document.getElementById('content');

 

调用子页面的函数:

document.frames['child'].testChildFunction();

 

调用父页面的元素:

parent.document.getElementById('content');

 

调用父页面的函数:

parent.testParentFunction();

 

以下是具体的页面演示情况:

parent.html

 1<html>
 2    <head>
 3        <script language="javascript">
 4            function callChildElement(){
 5                //call child page's function
 6                var content = document.frames['child'].document.getElementById('content');
 7                window.alert(content.firstChild.nodeValue);
 8            }

 9
10            function callChildFunction(){
11                //call functions belongs to child page
12                document.frames['child'].testChildFunction();
13            }

14
15            function callChildElement2(){
16                //another method to acquire the element in the child page
17                var content = document.getElementById('child').contentWindow.document.getElementById('content');
18                window.alert(content.firstChild.nodeValue);
19            }

20
21            //this function will be called by child page
22            function testParentFunction(){
23                window.alert("Function belongs to parent.");
24            }

25        
</script>
26    </head>
27
28    <body>
29        <input type="button" value="Test Child Element" onclick="callChildElement();"/>
30        <input type="button" value="Test Child Element2" onclick="callChildElement2();"/>
31        <input type="button" value="Test Child Function" onclick="callChildFunction()"/>
32        <input type="text" value="This will be called by child" size="40" id="content"/>
33        <iframe name="child" id="child" width="100%" height="100%" frameboder="0" src="child.html">
34        </iframe>
35    </body>
36</html>
37
38

 

child.html

child.html

 

 

我已经把文件打包js_iframe.rar

posted on 2008-08-12 23:01  CodingME!  阅读(451)  评论(0编辑  收藏  举报

导航

Blog