JavaScript调用父框架与弹窗父页面函数的实现方法

作者:函数茶馆时间:2026-10-30 15:59:21浏览:115

本文详细解析JavaScript中如何从子页面、iframe框架及弹窗调用父级或同级页面的函数。涵盖parent、window.opener及frames对象的使用场景,解决Firefox兼容性问题,并提供跨子域名通信的document.domain配置方案,确保代码在IE与Firefox中正常运行。

父框架函数调用方法

实现调用父级中名为aaa的函数

在子页面中执行以下代码:


onclick="window.parent.frames.aaa()"

在父页面中定义该函数:


function aaa()
{
alert(‘bbbbb');
}

若需修改同框架下的其他页面或父框架页面,应使用parent对象进行引用。

window.opener属性用于引用由window.open方法打开的页面的父页面。

window.frames对象可用于引用iframe或frameset内的页面。

具体调用方式如下:


window.frames[0].document.getElementById(‘xx');

另一种调用方式如下:


window.frames[0].document.body.innerHTML;

frm = window.parent.window.frames[‘uploadFrame'];
frmDocument = frm.document;
frm.sb(3); //sb 是uploadFrame页面里的一个函数

针对Firefox浏览器的处理:

若遇到报错信息“parent.document.frames has no properties”,

请替换为以下代码,该写法兼容IE和Firefox:frm = window.parent.window.frames['uploadFrame'];实际上,frames集合挂载在window对象下而非document对象。

注意,修改frame内页面存在限制,必须确保处于同域环境下,否则无法访问。

若处于同一主域但子域名不同,需在涉及的js和html文件中添加以下配置:


document.domain = xxx.com [这里填写你的域名]

document.getElementById(‘iframeid').contentWindow.document.getElementById(‘someelementid');

弹窗页面调用父页面函数

通过js弹窗页面调用父页面函数的方法如下:

例如调用父页面中的test2()函数,代码为: window.opener.test2();

框架子页面调用上一个页面方法的示例:

例如,假设上一页面的框架名为menuBar,调用其onhook()函数,代码为: window.top.frames["menuBar"].onhook();

js弹窗页面调用父页面框架子页面函数的示例:

如弹窗页面需调用名为menuBar的frame,代码为: window.opener.top.frames['menuBar'].onhook();

以上为JavaScript调用父框架函数与弹窗调用父页面函数的完整方法,供参考使用。

作者最新文章