每次iframe父子页面交互的时候总是现查,总也记不住,所以今天来详细记载一下。以下均为jquery 写法。
1、iframe子页面调用父页面
(1)方法
parent.func()
(2)变量
parent.value
(3)jquery元素
$("div",parent.document)
2、父页面调用iframe子页面
(1)方法
$("#childrenIframeId").eq(0)[0].contentWindow.func();
(2)变量
$("#childrenIframeId").eq(0)[0].contentWindow.value;
//注意,如果取不到名为value的全局变量,检查一下value是否定义在子页面的window上,若没有,子页面变量可以这样定义 window.value = "XXX"
(3)jquery元素
$("#childrenIframeId").eq(0).contents().find("div")
子页面窗口对象也可这样获取: window.frames['name'],
即$("#childrenIframeId").eq(0)[0].contentWindow == window.frames['childrenIframeName']
注意:父页面要在确保iframe子页面加载完成后,再执行获取变量等操作,否则取不到,可在iframe子页面加载完成的回调方法中执行
$('#childrenIframeId').load(function() {
// 获取元素 。。。
// 获取变量 。。。
// 执行方法 。。。
});