iframe通信,同源和不同源两种情况,多少种方法。同源我说了,根据父页面以及cookie,不同源我说了设置子域的方法。
iframe通信,同源和不同源两种情况
同域:即父子页面相互调用
一、父页面调用子页面
1、先得到子页面的document
document.getElementById('FrameId').contentWindow.document
2、得到子页面的window
document.getElementById('FrameId').contentWindow.window
重载子页面:document.getElementById('FrameId').contentWindow.window.location.reload(true);
或者 $('#FrameId').attr('src','../list');
3、得到子页面的的变量
doucment. iframe的name属性值 . 子页面变量名称 (document.frameName.temp)
二、子页面调用父页面
1、父页面document : window.parent.document
2、获得父页面变量 : parent.变量名称
3、调用事件 : window.parent.XXX();
跨域:
主域:由两个或两个以上的字母构成,中间由点号隔开,整个域名只有1个点号
csdn.net
子域:是在主域名之下的域名,域名内容会有多个点号
未跨主域,跨子域
两个域的js文件中设置document.domain=主域名 即可
跨主域
location.hash
(B操作A)
1、动态改变location.hash,iframe不会重载
2、无论跨域与否,iframe内可以获取自己的location.hash
3、只要域名相同就能通信,即使ABC三层嵌套