最近公司做的一个功能,使用了iframe,父页面内嵌子页面,里面的坑还挺多的,上次其实就遇到过,只不过今天在此描述一下。
请允许我画个草图:
外层大圈是父级页面,里层是子级页面,我们是在父级引用子级页面的,由于是两个页面,URL肯定不一样的,“一般的,在子页面做的操作也仅仅对子页面生效”,现在我要说的就是关于这一点的!
公司这个功能,在子级页面完成某个操作以后,需要跳转页面,于是子级页面的代码是这样写的:提交=>提交成功=>跳转B页面。这个时候我们发现页面跳是跳了,但是是子级页面在子级页面里跳了,什么意思呢,其实就是外层没变,子级页面重定向的时候,是在iframe里面完成了跳转,F12你就会发现,iframe的href变了,但是浏览器地址栏的URL没变(当前浏览器地址栏自然就是父级页面URL了),而我们想要的效果,是浏览器地址栏变(也就是父级URL变)。所以最后还是借助中间页(home.aspx)做了一次页面跳转,从而改变父级URL。