1.  子frame刷新的问题

  一般在jsp里面,要实现界面跳转,有很多方法,最典型的就是window.location.href="href",但是在嵌套有iframe框架的页面布局,使用上述语句,只会使iframe本身实现跳转,如果遇到session超时,而进入登录界面的时候,也会使登录界面显示在iframe内部,目前没有找到好的方法在超时之后根据请求结果判断是否是登录界面。

  所以,目前实现比较妥当的方法是,在请求子frame内容之前,先向服务器查询是否超时,这个用Ext.request就可以实现了,这里就不说了,然后根据返回结果,判断是要在父页面显示登录界面,还是在子frame中显示jsp页面。

  父页面显示登录界面代码:

parent.window.href="login.jsp"   //父页面显示,或者如果层级结构比较多,也可以使用下面语句
top.window.href="login.jsp" //顶页面

子frame跳转,就用之前的那句window.location.href="href",就可以了。

2.   父页面调用子frame中jsp内的方法

  当时遇到的问题是这样子的,子frame是作为父页面的tab页显示出来的,父,子页面分别为两个jsp文件,两个文件之间没有什么别的关系,唯一的联系,就是子页面是父页面的一个tab页,当激活某个tab页的时候,需要子frame的某个控件获取焦点。

  但是由于父页面有多个子tab,也就是每个子frame都有若干个兄弟的frame,因此,直接从父页面中获取控件是不明智的,因此就需要实现类似抽象方法的逻辑,网上找了好多基本都是粘贴复制的,主要代码是在父页面中使用:

  

window.frames["frame_name"].functionName();

但是我不管怎么尝试都不成功,后来通过调试工具,使用下面这句,就可以了:

window.frames["frameName"].frames.functionName();

中间还遇到一点需要注意,

因为我是子frame首次呈现出来的时候,就需要调用这个方法,但是因为是在父页面调用的,所以,有可能子frame还没有呈现出来之前,就调用这个方法,就会导致出错,我当时也是,通过dom看window.frames["name"].frames,怎么看都有我要调用的方法,但是就是调用不到 ,后来我才想明白原因,所以,给这个方法加个延时就可以了:

new Ext.util.DelayedTask(function(){
window.frames["frame_name"].frames.functionName();
}).delay(250);

最新文章

  1. .Net消息队列的使用
  2. JavaScript-indexOf函数
  3. ios tabbar 文字位置
  4. CSS实现背景图尺寸不随浏览器大小而变化的两种方法
  5. linux下mysql忘记密码的解决方案
  6. [Scala] 了解 协变 与 逆变
  7. OAF开发概念和案例总结(项目总结)
  8. 三色GDOI
  9. js 日期格式 转换 yyyy-MM-dd
  10. asp.net mvc自动压缩文件,并生成CDN引用
  11. [CocoaPods]故障排除
  12. idea tomcat上传图片,无法显示的问题解决
  13. Android 开发工具类 34_OpenFileUtil
  14. Redis安装以及主从实现
  15. PHP开发微信被动回复消息遇到的大坑
  16. Javascript 正则验证带 + 号的邮箱地址
  17. Django 2.0.3安装-压缩包方式
  18. Scala入门1(单例对象和伴生类)
  19. Java_锁Synchronized
  20. 图片异或(xor)getflag

热门文章

  1. struts2 标签的使用之一 s:if(遍历中s:if如何用等)
  2. Tomcat启动后加载两次web.xml的问题(因为spring定时任务执行了俩次,引出此问题)
  3. Java随机生成定长纯数字或数字字母混合数
  4. 第1条:了解Objective-C 语言的起源
  5. C#常用的关键字
  6. (转)iOS被开发者遗忘在角落的NSException-其实它很强大
  7. 【实习记】2014-08-24实习生无法映射磁盘替代方案rsync+非默认端口22设置
  8. 跟我玩ADB——初识ADB
  9. thinkphp中表有前缀名的时候申明模板的方法
  10. WF学习笔记(三)