關於視窗跳轉的一些總結

2022-09-15 23:51:17 字數 4690 閱讀 7799

在應用有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...