2010-06-18 55 views
6

这看起来很简单,但是如何从子框架调用在顶级html中定义的JavaScript函数?如何在顶部框架中调用JavaScript函数?

top html doc 
- 1st level frame 
    - 2nd level frame 

我的顶级html文档有一个名为testFn()的函数。在第二级框架中,我有一个带有onclick="top.testFn();"的按钮,但这不会调用testFn()。在Firebug中,如果我使用手表来执行top.testFn();它说TypeError:testFn()不是函数。

这一切应该如何工作 - 在这种情况下,这是我的文档的问题,还是有其他方式来调用顶层窗口中的函数?

+0

所有文档涉及相同的域和协议吗? – 2010-06-18 11:27:02

回答

4

您的代码看起来正确。如果它说testFn() is not a function那么也许它不是。您是否曾尝试在顶部框架的<BODY>中设置onload="testFn();"以确保其有效?

可能会有一些JavaScript错误,导致代码创建您的testFn函数没有成功完成。

2

你有没有打过电话这样的:

onclick="parent.parent.testFn();"

我假设你有1帧中的第2帧。

+0

谢谢 - 原来这只是页面上其他地方的错误。 – Rory 2010-06-18 11:32:31

0

其实,这正是你如何做到的。

诀窍是没有语法错误在顶级HTML页面的JavaScript别处:-)