Extjs4开发中的一些问题
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);
Extjs4开发中的一些问题的更多相关文章
- TDD在Unity3D游戏项目开发中的实践
0x00 前言 关于TDD测试驱动开发的文章已经有很多了,但是在游戏开发尤其是使用Unity3D开发游戏时,却听不到特别多关于TDD的声音.那么本文就来简单聊一聊TDD如何在U3D项目中使用以及如何使 ...
- React在开发中的常用结构以及功能详解
一.React什么算法,什么虚拟DOM,什么核心内容网上一大堆,请自行google. 但是能把算法说清楚,虚拟DOM说清楚的聊聊无几.对开发又没卵用,还不如来点干货看看咋用. 二.结构如下: impo ...
- Android学习探索之Java 8 在Android 开发中的应用
前言: Java 8推出已经将近2年多了,引入很多革命性变化,加入了函数式编程的特征,使基于行为的编程成为可能,同时减化了各种设计模式的实现方式,是Java有史以来最重要的更新.但是Android上, ...
- Java开发中的23种设计模式详解
[放弃了原文访问者模式的Demo,自己写了一个新使用场景的Demo,加上了自己的理解] [源码地址:https://github.com/leon66666/DesignPattern] 一.设计模式 ...
- 总结iOS开发中的断点续传那些事儿
前言 断点续传概述 断点续传就是从文件赏赐中断的地方重新开始下载或者上传数据,而不是从头文件开始.当下载大文件的时候,如果没有实现断点续传功能,那么每次出现异常或者用户主动的暂停,都会从头下载,这样很 ...
- 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践
提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...
- C#开发中使用配置文件对象简化配置的本地保存
C#开发中使用配置文件对象简化配置的本地保存 0x00 起因 程序的核心是数据和逻辑,开发过程中免不了要对操作的数据进行设置,而有些数据在程序执行过程中被用户或程序做出的修改是应该保存下来的,这样程序 ...
- iOS开发中静态库之".framework静态库"的制作及使用篇
iOS开发中静态库之".framework静态库"的制作及使用篇 .framework静态库支持OC和swift .a静态库如何制作可参照上一篇: iOS开发中静态库之" ...
- iOS开发中静态库制作 之.a静态库制作及使用篇
iOS开发中静态库之".a静态库"的制作及使用篇 一.库的简介 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.库的类型? 根据源代码的公开情况,库可以分为2种类 ...
随机推荐
- MyXLS案例
using System; using System.Data; using org.in2bits.MyXls; namespace Maticsoft.Common { /// <summa ...
- Error parsing XML: not well-formed (invalid token)
从网络上或别的文件复制粘贴进来的代码有隐含格式,可将内容先粘贴进记事本清除格式,再复制粘贴进工程文件,即可解决此问题 注:1. 要使工程文件全选清空, 2. 若粘贴后刷新仍无效果,可手动输入
- css - div垂直方向滚动
只要设置 OVERFLOW-Y:auto;OVERFLOW-X:hidden即可.
- SQL函数大全(字符串函数).
SQL Server 2005 函数大全 字符串函数 字符串函数 SubString在SQL和C#中不同, 一,select substring('abcde',-1,3) select LEN( ...
- cocos2d-x 2.2.0 如何在lua中注册回调函数给C++
cocos2d-x内部使用tolua进行lua绑定,但是引擎并没有提供一个通用的接口让我们可以把一个lua函数注册给C++层面的回调事件.翻看引擎的lua绑定代码,我们可以仿照引擎中的方法来做.值得吐 ...
- C#后台程序与HTML页面中JS方法互调
此方法适用于 C#中嵌入WebBrowser(浏览器) 通过浏览器中加载的页面与C#的后台代码进行交互. 一.C#程序 1.在C#窗体中添加WebBrowser(浏览器),将页面的URL添加到浏览器中 ...
- Python之练习Demo
遍历本地文件系统 (sys, os, path),例如写一个程序统计一个目录下所有文件大小并按各种条件排序并保存结果,代码如下: #coding:GBK import os; def SortList ...
- 我也来玩玩WinForm~BeginInvoke让用户体验更好!
前言 先说明一下,本人不太做winform的项目,工作10年以来,一直奋斗在webform的舞台上,今天有机会也接触了一下winform,下面对工作中用到的BeginInvoke方法作一下说明,和大家 ...
- php完整验证码代码
<?php require_once 'string.func.php'; //通过GD库做验证码 /** *添加验证文字 * @param int $type * @param int $le ...
- mssql 获取表结构信息
SELECT (case when a.colorder=1 then d.name else null end) 表名, a.colorder 字段序号,a.name 字段名, (case when ...