记录问题:layer弹出层ifame子页面和父页面交互

1.问题描述:

项目有个页面用layer弹出层,嵌入一个iframe(content是单独的一个页面),iframe子页面是一个表单,有提交按钮。提交表单到后台,后台controller返回一个ModelAndView(redirect:父页面url)。想实现表单提交完之后layer弹出层关闭且父页面刷新数据。结果是弹出层里面刷新为父页面,且未关闭。

2.解决思路:

想了办法在提交按钮之后写刷新语句,总是会页面刷新而数据没刷新,需要手动再刷新页面数据才会出来。感觉总是缺一个回调函数来写入刷新语句。

解决:controller里面不返回ModelAndView,而是向页面写入刷新父页面命令:parent.window.localtion.reload();

    PrintWriter pw = res.getWriter();
    pw.print("<script>parent.window.localtion.reload();</script>");
    pw.flush();
    pw.close();

3.过程中试过父页面获取子页面的元素:

var iframe=window.document.getElementById("iframe的id");

var ele=iframe.document.getElementById("iframe页面的元素id");

4.总结

layer弹出层可以用div而不用iframe,但是遇到这个新的问题,就还是找下解决方法。。

以上都是同域下父页面和子页面的交互。

iframe这块用得少,记录下。

发现之前习惯了用Jq操作DOM,JS原生的方法也很强大啊。

猜你喜欢

转载自blog.csdn.net/qq_22656233/article/details/79631390