JavaScript调用父框架与弹窗父页面函数的实现方法
本文详细解析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调用父框架函数与弹窗调用父页面函数的完整方法,供参考使用。
JS大数值转字符串出现科学计数法怎么办
2026-11-05 17:09:21
JS split切割后出现空字符串怎么过滤
2026-11-05 16:00:30
在 React 或 Vue 项目中封装使用 JS 节流防抖
2026-11-05 15:27:29
JavaScript中怎么将带小数的字符串转为整数?
2026-11-05 14:32:38
怎么用JavaScript策略模式重构电商促销计算逻辑?
2026-11-05 14:01:09
