
1、建立父级页面,首先建立一个父级页面parenthtml,代码如图,一个pop函数方法,一个链接到childhtml的iframe标签;
2、建立子页面,再新建一个childhtml页面,如图,展示一个id=link的div标签,和link的点击事件,因为是调用父级方法,所以需要用到windowparentpop()方法。
3、预览页面,预览页面,可明显看到parenthtml里面的iframe框架,指向的就是child子页面
4、错误提示,点击页面中“调用父级pop方法”的文字链,会提示错误,这是因为没配置好域名等相关设置。
5、站点配置,打开iis,右键iframe文件夹——“管理文件夹”——“浏览”;即可打开本地测试地址;(如小伙伴没配置iis,需要先配置iis建立站点)
6、成功调用父级方法,再次点击“调用父级pop方法”的文字链,即可成功d出提示。
js获取父页面的元素可以用$(windowparentdocument)find("#customer_id")val();这里的customer_id表示父页面某一个元素的id。 比如:父页面有一个隐藏的input框,那么在子页面就可以用上述的语句取到父页面的id为customer_id的值。
function getTicketId() {
var parentSrc = parent$("#layui-layer-iframe")attr("src");//获取父页面iframe中的src链接
args = parentSrcsplit("&");
for (var i = 0; i < argslength; i++) {
str = args[argslength - 1];
var arg = strsplit("=");
if (arg[0] == "ticketId"){
var retval = arg[1]
}
return retval;
}
}
简述:这是是项目中真实遇到的情况,在子页面获取父页面的src并截取传过来的相应参数进行 *** 作。
两点
1既然你用jQuery了,为什么还要用getElementById()来获取元素?况且,获取iframe中元素也没这么麻烦啊
$("#id_iframe")contents()find("#id_button_test");这不就好了。。
2你这部分代码是写在ajsp页面中了吧?那我估计之所以不运行,是因为你注册点击事件的时候,bjsp页面还没有加载完。所以尽管你调试的时候能输出,但是代码里是注册不上的。把这段代码写在bjsp的windowonload事件中
这个要看你用什么样的方式d出来的,如果是showmodeldialog用windowretunValue如果是用windowopen用直接用windowparent取得父窗口对象的。具体的可以代码可以百度Q我的!
jsp中父子页面交互传值方式介绍:
两个JSP页面,父页面需要子页面的内容,但子页面是隐藏的,具体来说,子页面是一系列的模板,父页面要通过id来获取这些模板,不愿意通过<include>方式导入,因为如果模板过多,就导致整个父页面太大,加载缓慢,以下两个方案:
1、通过ajax方式
实现过程:通过ajax请求到子页面中,子页面获取参数id使用java和js变量的交互后,返回需要的模板信息
缺点:把js变量转换成java变量比较麻烦,需要使用form表单来提交,而且jsp中的java脚本是在服务器端运行的,需要服务器端资源开销,而且增加了交互次数
2、通过iframe 引入
实现过程:使用iframe引入子页面,然后通过$(iframecontents()find("#"+id)[0])val()获得需要的模板。
缺点:不确定iframe是不是可以延迟加载,如果也想<include>一样把整个页面都导入进来,这样交互方便了。
以上就是关于js window.opener 子页面 父页面 传值全部的内容,包括:js window.opener 子页面 父页面 传值、mui 父页面怎么使用子页面的元素、子页面(d出框)获取父页面中 链接地址,获取传值问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)