前端路上的各种问题-javascript-2

父窗口和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

 


       

   

你可能感兴趣的:(前端路上的各种问题-javascript-2)