处理iframe中嵌套本页面的问题
在框架中,常常会出现一种状况,当session失效之后再次操作时,会发现登录页面(或者你要操作的页面)突然见就显示在了iframe中,这是很不好的体验。
出现的效果大致像这样:
出现了这种状况,我们常常希望的是——当session失效之后再次操作时进入登录页面,而且该登录页面是在iframe的父级页面,也就是浏览器上地址栏里面能看见的路径的页面。
解决这种bug很简单,只需要在登录界面里面加上如下代码即可:
1 <script type="text/javascript"> 2 $(function(){ 3 //判断登录页面是否在iframe中 4 if (self.frameElement && self.frameElement.tagName == "IFRAME") { 5 parent.location.reload();//父页面重新加载 6 } 7 }); 8 </script>
这段代码的意思就是:先判断该页面是否是在iframe里面,如果是——刷新父页面(此时重新加载,因为session失效的缘故,导致父页面刷新的结果是登录界面);
最终我们的效果就会变成这样:
代码十分简短,也十分有用。。