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);?
?
轉載于:https://www.cnblogs.com/qgli/p/3543880.html
總結
以上是生活随笔為你收集整理的Extjs4开发中的一些问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 马后炮之12306抢票工具(四)--抢票
- 下一篇: I2C 协议