关于iframe页面里的重定向问题

    最近公司做的一个功能,使用了iframe,父页面内嵌子页面,里面的坑还挺多的,上次其实就遇到过,只不过今天在此描述一下。

    请允许我画个草图:

    

    外层大圈是父级页面,里层是子级页面,我们是在父级引用子级页面的,由于是两个页面,URL肯定不一样的,“一般的,在子页面做的操作也仅仅对子页面生效”,现在我要说的就是关于这一点的!

    公司这个功能,在子级页面完成某个操作以后,需要跳转页面,于是子级页面的代码是这样写的:提交=>提交成功=>跳转B页面。这个时候我们发现页面跳是跳了,但是是子级页面在子级页面里跳了,什么意思呢,其实就是外层没变,子级页面重定向的时候,是在iframe里面完成了跳转,F12你就会发现,iframe的href变了,但是浏览器地址栏的URL没变(当前浏览器地址栏自然就是父级页面URL了),而我们想要的效果,是浏览器地址栏变(也就是父级URL变)。所以最后还是借助中间页(home.aspx)做了一次页面跳转,从而改变父级URL。

 

    

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: 当在嵌套的iframe中进行页面跳转时,可能会出现地址栏的hash路由没有改变的问题。为了解决这个问题,可以在嵌套的页面中添加一段JavaScript代码来实现重定向。可以使用以下两种方法之一来解决这个问题。 方法一:在login.html页面中添加以下代码: ```javascript $(function () { if(window != window.top){ window.top.location='/login/'; } }); ``` 这段代码的作用是,如果当前窗口不是顶层窗口(即在iframe中),则将顶层窗口的地址重定向到/login/页面。 方法二:在login.html页面中添加以下代码: ```javascript $(function () { if(window != top){ top.location.href=location.href; } }); ``` 这段代码的作用是,如果当前窗口不是顶层窗口(即在iframe中),则将顶层窗口的地址重定向到当前页面的地址。 通过使用以上方法之一,可以解决在iframe嵌套页面中进行重定向时地址栏hash路由没有改变的问题。 #### 引用[.reference_title] - *1* [iframe 重定向问题](https://blog.csdn.net/mChales_Liu/article/details/108588435)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [django登录失效重定向,解决iframe页面嵌套问题](https://blog.csdn.net/wuyepiaoxue789/article/details/125071204)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值