今天工作的时候遇到一个新问题,当页面中存在iframe的时候,iframe里面的子页面该如何调用父级页面的方法呢?刚开始小编也是懵劲忧商偌了,毕竟小编也少使用iframe框架制作页面,于是在小编绞尽脑汁之后,还好终于找到了“答案”,同时小编也对其他方式打开子页面的情况做了个小总结。
工具/原料
sublime编辑器
子页面在iframe
1、建立父级页面首先建立一个父级页面parent.html,代码如图,一个pop函数方法,一个链接到child.html的iframe标签;
2、建立子页面再新建一个child.html页面,如图,展莲镘拎扇示一个id=link的div标签,和link的点击事件,因为是调用父级方法,所以需要用到window.parent.pop()方法。
3、预览页面预览页面,可明显看到parent.html里面的iframe框架,指向的就是child子页面
4、错误提示点击页面中“调用父级pop方法”的文字链,会提示错误,这是因为没配置好域名等相关设置。
5、站点配置打开iis,右键iframe文件夹——“管理文件夹”——“浏览”;即可打开本地测试地址;(如小伙伴没配置iis,需要先配置iis建立站点)
6、成功调用父级方法再次点击“调用父级pop方法”的文字链,即可成功弹出提示;
open打开的子页面
1、新建父页面同样新建一个parent.html,创建一个pop方法和openchild方法,如图所示,child.html换成用open形式打开。
2、新建子页面同样新建一个child.html页面,如图,创建一个id=link的div标签和点击事件,因为是open方法打开的子页面,想调用父级,需要用到window.opener.pop()方法。
3、浏览页面浏览parent页面,并点击“父页面用open方式打开子页面”文字链;
4、成功调用这时就会弹出child子页面,再点击“调用父级pop方法”文字链,即可调用父页面的pop方法,如图所示;