主页面怎么调用iframe里的javascript方法

JavaScript011

主页面怎么调用iframe里的javascript方法,第1张

如果是同一个域,iframe可以调用父窗口的js方法。如果

是父窗口调用子窗口内部的方法。不论跨不跨域,都不能调用。

解决办法:H5提供的消息机制。支持跨域。

在iframe窗口的js代码中,监听事件:

window.onmessage=function(e){

   //e.data --接收到的字符串。

   //e.source ---发送窗口所在的域。

   //e.orgin  --发送窗口的代理对象。

}

在主页面窗口中,发送消息。

window.postMessage("字符串","域")

//其中的域是指iframe所在网站的域名。如果为*表示不校验校验域名。

假设父页面有一个方法叫 testfunt()

在 iframe 内页面中可以通过 parent ( 父页面 DOM 对象 )来调用,如:

parent.testfunt()

其实iframe是一个独立的页面,与父页面是嵌套但变量独立的关系。所以iframe加载时,如果js方法不涉及操作文档对象(DOM),就直接调用;如果该js方法涉及操作dom,就添加window.onload事件触发函数处理,在处理函数内调用js方法