在應用有frameset或者iframe的頁面時,parent是父視窗,top是最頂級父視窗(有的視窗中套了好幾層frameset或者iframe),self是當前視窗, opener是用open方法開啟當前視窗的那個視窗。
1、window.self
功能:是對當前視窗自身的引用。它和window屬性是等價的。
語法:window.self
注:window、self、window.self是等價的
2、window.top
功能:返回頂層視窗,即瀏覽器視窗。
語法:window.top
注:如果視窗本身就是頂層視窗,top屬性返回的是對自身的引用
3、window.parent
功能:返回父視窗
語法:window.parent
注:如果視窗本身就是頂層視窗,parent屬性返回的是對自身的引用
在框架網頁中,一般父視窗就是頂層視窗,但如果框架中還有框架,父視窗和頂層視窗就不一定相同了。
總結:你應該當將框架視為視窗中的不同區域,框架是瀏覽器視窗中特定的部分。乙個瀏覽器視窗可以根據你的需要分成任意多的框架,乙個單個的框架也可以分成其它多個框架,即所謂的巢狀框架。
注:parent與opener的區別:
parent指父視窗,在frameset中,frame的parent就是frameset視窗。
opener指用window.open方式建立的新視窗對應的原視窗。
parent是相對於框架來說父視窗物件。
opener是針對於用window.open開啟的視窗來說的父視窗,前提是window.open開啟的才有。
跳轉總結:
1、"window.location.href"、"location.href"——
是本頁面跳轉
2、"parent.location.href"——是上一層頁面跳轉
3、"top.location.href"——是最外層的頁面跳轉
一、js方式的頁面跳轉
1、window.location.href方式
注意:如果top.jsp中有iframe標籤,則top.jsp頁面將會在iframe中被開啟。
2、window.loction.replace方式實現頁面跳轉,注意跟第一種方式的區別
window.location.href和window.loction.replace的區別:
有3個jsp頁面(a.jsp, b.jsp, c.jsp),進系統預設的是a.jsp ,當我進入b.jsp的時候, b.jsp裡面用window.location.replace("c.jsp");與用window.location.href ="c.jsp";從使用者介面來看是沒有什麼區別的,但是當c.jsp頁面有乙個"返回"按鈕,呼叫window.history.go(-1);
wondow.history.back();方法的時候,一點這個返回按鈕就要返回b.jsp頁面的話,區別就出來了,當用 window.location.replace("c.jsp");連到c.jsp頁面的話,c.jsp頁面中的呼叫 window.history.go(-1);wondow.history.back();方法是不好用的,會返回到a.jsp 。
3、self.location方式實現頁面跳轉,和下面的top.location有小小區別
4、top.location
5、不推薦這種方式跳轉
6、頁面自動重新整理:把如下**加入區域中
其中20指每隔20秒重新整理一次頁面.
7、返回上一步
8、">返回上一步
9、開啟新視窗
11、window.history.go(返回第幾頁,也可以使用訪問過的url)
二、iframe中頁面跳轉
1、iframe頁面跳**
"window.location.href"、"location.href"是本頁面跳轉
"parent.location.href"是上一層頁面跳轉
"top.location.href"是最外層的頁面跳轉
例:如果a,b,c,d都是jsp,d是c的iframe,c是b的iframe,b是a的iframe,如果d中js這樣寫
"window.location.href"、"location.href":d頁面跳轉
"parent.location.href":c頁面跳轉
"top.location.href":a頁面跳轉
2.iframe中的target
如果d頁面中有form的話, form提交後d頁面跳轉
: form提交後彈出新頁面
: form提交後c頁面跳轉
: form提交後a頁面跳轉
三、iframe頁面重新整理
d 頁面中這樣寫:"parent.location.reload();": c頁面重新整理
(當然,也可以使用子視窗的 opener 物件來獲得父視窗的物件:window.opener.document.location.reload(); )
"top.location.reload();": a頁面重新整理
注:window.location.href = window.location.href 也可以實現頁面重新整理,它與reload的區別是:如果在reload之前向伺服器提交過資料,那麼執行reload會重新執行這個提交操作。 而window.location.href = window.location.href 則不會,因為它是重新進入頁面。
舉個例子:如果a,b,c,d都是html,d是c的iframe,c是b的iframe,b是a的iframe,如果d中js這樣寫
1、window.open("url位址","_blank") = window.open("url位址");//在新視窗開啟
2、location = window.location = location.href = window.location.href =self.location.href = "url位址";//在d頁面實現展現
3、window.open("url位址","_self");//在d頁面實現展現
4、parent.location.href = window.parent.location.href ="url位址";//在c頁面實現展現
5、window.open("url位址","_parent");//在c頁面實現展現
6、top.location.href = window.top.location.href ="url位址";//在a頁面實現展現
7、window.open("url位址","_top");//在a頁面實現展現
8、parent.parent.location = "url位址";//在b頁面實現展現
9、parent.open("url位址","_parent") = parent.parent.open("url位址","_self");//在b頁面實現展現
如果d頁面中有form的話:
1、: form提交後d頁面跳轉
2、: form提交後彈出新頁面
3、: form提交後c頁面跳轉
4、 : form提交後a頁面跳轉
關於頁面重新整理,d 頁面中這樣寫:
1、"parent.location.reload();": c頁面重新整理 (當然,也可以使用子視窗的 opener 物件來獲得父視窗的物件:window.opener.document.location.reload(); )
2、"top.location.reload();": a頁面重新整理
其他應用:
1、js判斷視窗或頁面是不是在框架中開啟的
2、如果當前窗體不是頂級窗體,就把自己變成最頂層。從而防止別人iframe使用(防止iframe巢狀),常用在登入介面
if (window.top !==window.self)
3、子視窗重新整理父視窗
(或重新整理 )
4、如何重新整理另乙個框架的頁面用
關於頁面跳轉的一些想法
1.首先是利用target屬性進行跳轉頁面,blank 在新視窗開啟,self 預設,在相同框架開啟,parent在父框架開啟,top在整個視窗開啟,最後是framename在指定框架內開啟 簡單示範一下target framename 的使用 herf中要輸入完全的鏈結 2.ajax跳轉頁面 3....
關於stringstream的一些總結
c 標準庫中的提供了比ansi c的更高階的一些功能,即單純性 型別安全和可擴充套件性。可以使用這些庫來實現安全和自動的型別轉換。如果你已習慣了風格的轉換,也許你首先會問 為什麼要花額外的精力來學習基於的型別轉換呢?也許對下面乙個簡單的例子的回顧能夠說服你。假設你想用sprintf 函式將乙個變數從...
關於JSON的一些總結
一 關於json json是一種類似於xml的通用資料交換格式,具有比xml更高的傳輸效率.從結構上看,所有的資料 data 最終都可以分解成三種型別 第一種型別是標量 scalar 也就是乙個單獨的字串 string 或數字 numbers 比如 北京 這個單獨的詞。第二種型別是序列 sequen...