父窗口和iframe之间的集中通信:
1.父窗口调用iframe中的js:child.window.child_js(this)其中child是iframe的name属性
iframe调用父窗口中的js:parent.window.parent_js(this)其中parent指代的就是父窗口
2.父窗口修改iframe中的DOM:child.window.document.getElementById('name').value="";其中child是iframe的name;或者通过frames集合进行访问 window.frames['child'].document.getElementById('name').value=''"
iframe修改父窗口的DOM:parent.document.getElementById('name').value='子iframe调用父亲';或者通过以下这种方式,也就是通过parent.window的形式来修改DOM,也 是可以的 parent.window.document.getElementById('name').value='调用结束'
3.父窗口和iframe之间进行双向通信的方式:
var win=document.getElementById('iframe').contentWindow;//获取iframe窗口对象
var parent_win=window;//保存自己的window对象
win.postMessage(document.getElementById("message").value,"*");//向iframe传递消息,第二个参数表示任何域
parent_win.onmessage=function(e){ document.getElementById("test").innerHTML=e.data;.}//注册主页面回调函数,e.data保存iframe传递回来的数据
//下面是iframe代码
window.onmessage=function(e){var my_name=e.data}//e.data保存了主页面传递过来的数据
parentwin=parent.window//获取父页面的引用,同时发送数据到主页面
parentwin.postMessage("查询完成","*");//iframe通过postMessage把数据传递回去主页面,“*”表示任何域Origion