多級iframe (很經典)

2022-02-23 00:53:16 字數 1237 閱讀 1804

iframe裡的js要操作父級視窗的dom,必須搞懂幾個物件:

parent是父視窗(如果視窗是頂級視窗,那麼parent==self==top),

top是最頂級父視窗(有的視窗中套了好幾層frameset或者iframe),

self是當前視窗(等價window)

pener是用open方法開啟當前視窗的那個視窗

1.父框架到子框架的引用

知道了上述原理,從父框架引用子框架變的非常容易,即:

window.frames["framename"];

這樣就引用了頁面內名為framename的子框架。如果要引用子框架內的子框架,根據引用的框架實際就是window物件的性質,可以這樣實現:

window.frames["framename"].frames["framename2"];

這樣就引用到了二級子框架,以此類推,可以實現多層框架的引用。

2.子框架到父框架的引用

每個window物件都有乙個parent屬性,表示它的父框架。如果該框架已經是頂層框架,則window.parent還表示該框架本身。

3.兄弟框架間的引用

如果兩個框架同為乙個框架的子框架,它們稱為兄弟框架,可以通過父框架來實現互相引用,例如乙個頁面包括2個子框架:

在frame1中可以使用如下語句來引用frame2:

self.parent.frames["frame2"];

4.不同層次框架間的互相引用

框架的層次是針對頂層框架而言的。當層次不同時,只要知道自己所在的層次以及另乙個框架所在的層次和名字,利用框架引用的window物件性質,可以很容易地實現互相訪問,例如:

self.parent.frames["childname"].frames["targetframename"];

5.對頂層框架的引用

和parent屬性類似,window物件還有乙個top屬性。它表示對頂層框架的引用,這可以用來判斷乙個框架自身是否為頂層框架,例如:

//判斷本框架是否為頂層框架

if(self==top)

還有有多級iframe,也可用多級parent,例如window.parent.parent.location=....

雖然iframe在現在web開發中越來越少用到了,但是iframe還有很多值得使用的地方,比如使用iframe解決跨域問題.關於iframe還有很多東西要學習,比如iframe自適應高度,使用iframe解決跨域問題,iframe載入問題,iframe載入效能問題等等,還有很多東西要學習,

很經典的智慧型感悟

1 對自己好點,因為一輩子不長 對身邊的人好點,因為下輩子不一定能夠遇見!2 對不起是一種真誠,沒關係是一種風度。如果你付出了真誠,卻得不到風度,那只能說明對方的無知與粗俗!3 如果你知道去哪 全世界都會為你讓路。4 我喜歡你,很久了,等你,也很久了,現在,我要離開,比很久很久還要久。5 純,屬虛構...

很經典的幾句話

第一句 為你的難過而快樂的 是敵人 為你的快樂而快樂的 是朋友 為你的難過而難過的 就是那些 該放進心裡的人 第二句 通常願意留下來跟你爭吵的人 才是真正愛你的人 第三句 付出真心 才會得到真心 卻也可能傷得徹底 保持距離 就能保護自己 卻也注定永遠寂寞 第四句 有時候 不是對方不在乎你 而是你把對...

MVC 模式 很經典的時鐘例項

mvc模式是 model view controller 的縮寫,中文翻譯為 模式 檢視 控制器 mvc應用程式總是由這三個部分組成。event 事件 導致controller改變model或view,或者同時改變兩者。只要controller改變了models的資料或者屬性,所有依賴的view都會...