我的网站是这样设置的:
<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');
}
如何在 nav.html
中调用 fAlert()
?
我试过了
var fframe = parent.document.getElementById('top');
fframe.fAlert();
还有
parent.frames.top.fAlert();
但它不起作用(fAlert 未定义
)。
有什么想法可以实现吗?
最佳答案
首先,不要使用框架集和框架。使用 iframe——框架已被弃用。
其次,为 iframe(或 frame,如果必须的话)提供一个 id,以便正确地引导函数调用。 (您已经完成了很多工作,但我是有条不紊的。)我不会将其命名为“top”,因为“top”在窗口和框架方面已经具有含义。
在导航框架内,parent.insertYourFrameIdHere.fAlert() 应该可以正常工作。这假设了两件事:1) 页面和框架内容来自同一个域,以及 2) header.html 正确加载并且其中没有脚本错误。脚本错误或其他问题可能会导致函数无法创建。
关于javascript - 从其他框架集中的框架调用javascript函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20098533/