iframe父子页面交互
父页面调用子页面
获取父页面的ifram的id或calss之后可以通过contentWindow这个对象获取子页面的元素和方法.父页面调用子页面的元素和方法时,必须要等iframe加载完毕,或者在onload 方法里执行,不然是获取不到的!
contentWindow 可取得子窗口的 window 对象。
document.getElementById('main').contentWindow.document.querySelector(".warp");//获取父页面的方法
document.getElementById('main').contentWindow.childFn();//获取子页面的方法并执行
子页面调用父页面
在子页面通过window.parent.fn()可以获取并执行父页面的方法
window.parent.parentFn()
实例:
父页面
<iframe scrolling="no" id="main" name="main" frameborder="0" src="iframe子页面1.html"></iframe> <script type="text/javascript"> //根据ID获取iframe对象 var ifr = document.getElementById('main'); ifr.onload = function() { /*获取子页面的dom元素*/ var warp=ifr.contentWindow.document.querySelector(".warp"); //获取子页面的元素 console.log(warp); ifr.contentWindow.childFn() //调用子页面的方法 } function parentFn(){ alert("我是父页面的方法") } </script>
子页面
<p onclick="parentFn">购物车</p> <script> var box=document.querySelector("p"); box.onclick=function(){ window.parent.parentFn()//点击时调用父页面的方法 } function childFn(){ console.log("我是子页面的方法") } </script>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!