frameset,iframe框架之間如何互相調用變量、函數

以往一直在編寫的都是前臺的UI,不多使用到frameset、iframe,對其瞭解也是十分有限,只是知道其能夠爲其當前頁面引入html文件成爲當前頁的一部分,可是這兩天在作後臺UI界面的時候,發現這樣的框架也是有至關多知識點在裏面的。那框架是啥?能夠這樣說:經過使用框架,你能夠在同一個瀏覽器窗口中顯示不止一個頁面。每份HTML文檔稱爲一個框架,而且每一個框架都獨立於其餘的框架。那麼關於框架,有幾個方面是須要我瞭解的:html

(1)得到html頁面上的frame瀏覽器

  window.frames能夠得到本頁面上全部frame集合,用法與document.forms,document.imgs的用法類似,這是這裏用的是window對象,獲取某個框架能夠這樣作window.frames[0]、window.frames['frameName']、frames['frameName']、frames[0]、self.frames[0],此處self與window等價,至關於本頁面的window對象。框架

這裏也還要再看兩個屬性,contentWindow、contentDocument兩個屬性,也是能夠用來獲取子窗口,框架的window對象的。函數

contentWindow 兼容各個瀏覽器,可取得子窗口的 window 對象。spa

contentDocument Firefox 支持,> ie8 的ie支持。可取得子窗口的 document 對象。code

假如我要刷新本頁面中第一個框架的頁面,能夠怎麼作:orm

window.frames[0].contentWindow.location.reload();

(2)父框架調用子框架的變量或函數htm

結合上面說的得到頁面上的frame,那麼調用子框架的變量或是函數能夠這樣來:對象

frames[0].a;
frames[0].refresh();
alert(frames[0].location.href);

這是調用第一個框架裏面的a變量和refresh函數。blog

(3)子框架調用父框架的變量或函數

對於子框架調用父框架的這種狀況下,window有個屬性叫parent,用來調用上層框架的,因此能夠這樣來:

window.parent.a;
window.parent.refresh();

這是調用子框架調用父框架的a變量和refresh函數。

(4)兄弟框架之間的調用

 能夠經過它們的父框架來相互調用,能夠這樣作

self.parent.frames['child1'];
self.parent.frames['child2'];

(5)多層框架的調用

window.frames[0].frames[2];
window.frames['child_1'].frames['sub_child_3'];

(6)頂層框架

首先須要判斷是否爲頂層框架,也就是根,能夠這樣來作:

if(self==window.top){
        //....
}
/*window的另一個屬性top,它表示對頂層框架的引用,這能夠用來判斷一個框架自身是否爲頂層框架*/

基本關於frameset和iframe之間的互相調用知識點就這些,這個嘛,忽略,http://t.cn/RUbL4rP

相關文章
相關標籤/搜索