是父窗口调用子窗口内部的方法。不论跨不跨域,都不能调用。
解决办法:H5提供的消息机制。支持跨域。
在iframe窗口的js代码中,监听事件:
window.onmessage=function(e){
//e.data --接收到的字符串。
//e.source ---发送窗口所在的域。
//e.orgin --发送窗口的代理对象。
}
在主页面窗口中,发送消息。
window.postMessage("字符串","域")
//其中的域是指iframe所在网站的域名。如果为*表示不校验校验域名。
其实iframe是一个独立的页面,与父页面是嵌套但变量独立的关系。所以iframe加载时,如果js方法不涉及操作文档对象(DOM),就直接调用;如果该js方法涉及操作dom,就添加window.onload事件触发函数处理,在处理函数内调用js方法