iframe子父頁面間js的相互呼叫
阿新 • • 發佈:2019-01-29
1、iframe子頁面呼叫父頁面js函式
子頁面呼叫父頁面函式只需要寫上window.praent就可以了。比如呼叫a()函式,就寫成:
複製程式碼程式碼如下:
window.parent.a();
子頁面取父頁面中的標籤中的值,比如該標籤的id為“test”,則:
複製程式碼程式碼如下:
window.parent.document.getElementById("test").value;
jQuery方法為:
$(window.parent.document).contents().find("test").val();
但是我在chrome瀏覽器下卻發現此方法無效了!查了半天才瞭解,在chrome 5+中,window.parent無法在file://協議中執行,但是釋出了之後http://協議下是可以執行的。此方法支援ie、firefox瀏覽器。
2、iframe父頁面呼叫子頁面js函式
複製程式碼程式碼如下:
這個就稍微複雜一些,下面的方法支援ie和firefox瀏覽器:
document.getElementById('ifrtest').contentWindow.b();
子頁面取父頁面中的標籤中的值,比如該標籤的id為“test”,則:
document.getElementById("test").value;
注:ifrtest是iframe框架的id,b()為子頁面js函式。contentWindow屬性是指定的frame或者iframe所在的window物件,IE下可以省略。
子頁面呼叫父頁面函式只需要寫上window.praent就可以了。比如呼叫a()函式,就寫成:
複製程式碼程式碼如下:
window.parent.a();
子頁面取父頁面中的標籤中的值,比如該標籤的id為“test”,則:
複製程式碼程式碼如下:
window.parent.document.getElementById("test").value;
jQuery方法為:
$(window.parent.document).contents().find("test").val();
但是我在chrome瀏覽器下卻發現此方法無效了!查了半天才瞭解,在chrome 5+中,window.parent無法在file://協議中執行,但是釋出了之後http://協議下是可以執行的。此方法支援ie、firefox瀏覽器。
2、iframe父頁面呼叫子頁面js函式
複製程式碼程式碼如下:
這個就稍微複雜一些,下面的方法支援ie和firefox瀏覽器:
document.getElementById('ifrtest').contentWindow.b();
子頁面取父頁面中的標籤中的值,比如該標籤的id為“test”,則:
document.getElementById("test").value;
注:ifrtest是iframe框架的id,b()為子頁面js函式。contentWindow屬性是指定的frame或者iframe所在的window物件,IE下可以省略。