<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>iframe调用子页面函数问题 A页面</title>
</head>
<body>
<iframe id="ifr" name="ifr" src="bb.html" scrolling="no" style="width:200;height:100;" frameborder="0">
<p>Your browser does not support iframes.</p>
</iframe>
<script type="text/javascript">
window.frames['ifr'].test();
</script>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>B页面</title>
</head>
<body>
BBBBBBBBBBBBBBBBBBBBBBBBBBB
<script type="text/javascript">
function test(){
alert("hello");
}
</script>
</body>
</html>
iframe

解决方案 »

  1.   

    问题是:A页面调用不了B页面函数,浏览器是IE8
    提示:对象不支持此属性或方法
      

  2.   

    同源的可以调用的。但要等页面加载完成才行。 可以在B页面回调A页面的f(),在f()中再去调用test()
      

  3.   

    父页面
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <script type="text/javascript">
    function tt(){
    document.getElementById("test").contentWindow.ss();
    }
    </script>
    </head><body>
    <iframe src="a.html" id="test"></iframe>
    <input type="button" value="调用子页面方法" onclick="tt()" />
    </body>
    </html>
    子页面
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <script type="text/javascript">
    function ss(){
    alert('a');
    }
    </script>
    </head><body>
    </body>
    </html>