iframe父頁面與子頁面之間的呼叫
專業詞語解釋如下:
iframe:iframe元素是文件中的文件。
window物件: 瀏覽器會在其開啟乙個html文件時建立乙個對應的window物件。但是,如果乙個文件定義了乙個或者多個框架(即:包含乙個或者多個frame或者iframe標籤),瀏覽器就會為原始文件建立乙個window物件,再為每個iframe建立額外的window物件,這些額外的window物件是原始視窗的子視窗。
contentwindow:是指指定的iframe或者iframe所在的window物件。
如果想要學習 "iframe之間的通訊問題及iframe高度自適應",請看這邊文章:
iframe之間的通訊問題及iframe高度自適應
父頁面與子頁面之間的呼叫。
現在我們可以慢慢做demo來分別講解下,假如有iframe父頁面為 iframe1.html, 父頁面上有2個子頁面 分別為iframe2.html 和 iframe3.html。
父頁面iframe1.html**如下:
父頁面
子頁面iframe2.html**如下:
aaa子頁面
1.子頁面iframe2.html呼叫父頁面iframe1.html的元素如下**:
console.log($('.iframe1',parent.document));
2. 子頁面iframe2.html呼叫父頁面iframe1.html的函式如下**:
parent.test2();
注意:父頁面iframe1.html頁面 中test2方法不能放在$(function(){}), 放在裡面就呼叫不到。
3.子頁面iframe2.html呼叫自身的iframe(假如父頁面有很多iframe,獲取自身iframe不通過id或者name屬性).
1. 首先我們可以在父頁面上寫乙個函式 用來獲取頁面所有的iframe,之後進行遍歷,進行判斷當前的window物件是否相同。如下**:
function2. 在子頁面iframe2.html中如下呼叫父頁面的方法 getframe.getframe(f)}}
/* 獲取自身的iframe */
var aa = parent.getframe(this);
console.log(aa);
$(aa).attr("flag",true);
給iframe2設定屬性 flag: true, 如下截圖:
4.父頁面iframe1.html呼叫子頁面iframe2.html的元素及函式
如下呼叫有誤的:
console.log(document.getelementbyid("iframe2").contentwindow.b());
因為iframe2.html 有可能未載入完成,所以要等iframe2載入完成後再進行呼叫,所以我們需要 iframe2.onload = function(){}; 這樣再進行呼叫。為了相容ie,我們可以如下封裝乙個方法:
function iframeisload(iframe,callback));
}else }}
呼叫方式如下:
//父頁面呼叫子頁面iframe2的方法
var iframe2 = document.getelementbyid("iframe2");
iframeisload(iframe2,function());
iframe子頁面與父頁面之間通訊
父頁面parent.html function say function callchild script head iframe body html 子頁面child.html function say function callparent script head body html 方法呼叫 ...
iframe子頁面與父頁面之間互相操作的方法。
jquery取得iframe中元素的幾種方法 在iframe子頁面獲取父頁面元素 如下 objid parent.document 在父頁面 獲取iframe子頁面的元素 如下 objid document.frames iframename document document.getelement...
iframe父頁面與子頁面之間的元素獲取與方法呼叫
父頁面與子頁面之間的元素獲取與方法呼叫 1 js 父調子 子調父 元素 window.frames iframe的name屬性值 window.parent.document.getelementbyid 父頁面元素id window.parent.document.getelementsbytag...