大家好,又见面了,我是你们的朋友全栈君。
一、背景
A,B,C,D都是jsp,D是C的iframe,C是B的iframe,B是A的iframe,在D中跳转页面的写法区别如下。
二、JS跳转
window.location.href、location.href 本页面跳转,D页面跳转
parent.location.href 上一层页面跳转,C页面跳转
top.location.href 最外层页面跳转,A页面跳转
三、链接或者form
D页面中有form
<form>: form提交后D页面跳转
<form target=”_blank”>: form提交后弹出新页面
<form target=”_parent”>: form提交后C页面跳转
<form target=”_top”> : form提交后A页面跳转
四、刷新
parent.location.reload():C页面刷新
window.opener.document.location.reload():C页面刷新(使用子窗口的opener对象来获得父窗口对象)
top.location.reload():A页面刷新
知识点转自http://blog.csdn.net/yuling59520/article/details/5630766
虽然现在iframe用的较少,但是一些管理系统里还是会用到,今天项目里就遇到一个很奇怪的bug,layer弹出层是一个新页面,页面上有日历控件(WdatePicker.js),关闭弹框时日历控件没有自动消失,这个bug不是所有的页面有,所以很奇葩,这个时候就用到了上面的知识点来解决的,代码如下:
$(window.parent.document).find(".layui-layer-close").on("mousedown", function(){ //关闭弹框前把日历控件关闭 window.top.$("body>div>iframe").parent("div").hide(); });
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/149319.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...