我的网站设置如下:
<frameset rows="80,*">
<frame name="top" id="top" src="header.html">
<frameset id="innerframe" cols="300,*">
<frame name="nav" src="nav.html">
</frameset>
</frameset>
在header.html
我有:
function fAlert() {
alert('test');
}
如何在fAlert()
中拨打nav.html
?
我试过了
var fframe = parent.document.getElementById('top');
fframe.fAlert();
以及
parent.frames.top.fAlert();
但它没有用(fAlert is undefined
)。
我有什么想法可以做到这一点吗?
答案 0 :(得分:6)
首先,请勿使用框架集和框架。使用iframe - 不推荐使用框架。
其次,为iframe(或帧,如果必须)提供id,以便正确引导函数调用。 (你已经完成了这个,但我有条不紊。)我不会把它命名为'top',因为'top'在窗口和框架方面已经有了意义。
从导航框内部,parent.insertYourFrameIdHere.fAlert()应该可以正常工作。这假设有两件事:1)页面和框架内容来自同一个域,2)header.html正确加载,并且没有脚本错误。脚本错误或其他问题可能导致函数无法创建。
答案 1 :(得分:6)
对于你问题中的html应该有效。
window.parent.parent.frames[0].fAlert();