在父级中获取子级iframe框架中的方法,疑问

父级代码

<body><iframe name="my" src="a.html" border="0"></iframe>        <script>
    frames[0].fn1();    
</script></body>

子级a.html的代码

<script>
        var i = 0;        function fn1(){
            alert("这里是子窗口");
        };    </script>

在父级中调用a.html的方法fn1,在firefox的代码草稿纸中运行ok,但是在源代码中运行报错
TypeError: frames[0].window.fn1 is not a function

frames[0].fn1();


米脂
浏览 1053回答 1
1回答

蝴蝶不菲

最后还是用window的方法进行解决,需要层层地调试,一点不注意都会出错,我写了一个父级与两个兄弟之间相互调用方法的例子,直接使用window方法,更简洁!!!a.html 如下<body><iframe&nbsp;id="b"&nbsp;src="b.html"&nbsp;frameborder="0"></iframe>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<iframe&nbsp;id="c"&nbsp;src="c.html"&nbsp;frameborder="0"></iframe>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<script> &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;b&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;frames[0];&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;c&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;frames[1];&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;setTimeout(function&nbsp;(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(b.i); &nbsp;&nbsp;&nbsp;&nbsp;},3000);</script></body>b.html 如下<body> &nbsp;&nbsp;&nbsp;&nbsp;<script> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;i&nbsp;=&nbsp;"this&nbsp;is&nbsp;b"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setTimeout(function&nbsp;(){console.log(parent.c.i)},2000);&nbsp;&nbsp;&nbsp;&nbsp;</script>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</body>c.html 如下<body> &nbsp;&nbsp;&nbsp;&nbsp;<script> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;i&nbsp;=&nbsp;"this&nbsp;is&nbsp;c" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setTimeout(function&nbsp;(){console.log(parent.b.i)},1000);&nbsp;&nbsp;&nbsp;&nbsp;</script>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</body>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript