The standard way to do that is this one:
window.frames["yourFrame"].yourFunction();
1.父页面中获取IFRAME的WINDOW对象
获得了window对象后,就可以调用iframe页面中定义的方法等。
IE:可以通过iframeId、window.iframeId、window.iframeName、window.frames[iframeId]、window.frames[iframeName]、window.frames[iframeIndex]和iframeElement.contentWindow这6种方法来获取iframe的window对象。
FF:可以通过window.iframeName、window.frames[iframeName]和iframeElement.contentWindow这3种方法获取window对象。
总结:为了兼容大多数浏览器,应使用iframeElement.contentWindow来获取。见如下代码:
ie6和ie7还可以使用document.frames["iframe Name"]或者document.frames["iframe ID"]来获取相当于contentWindow属性,而firefox和chrome并不支持这些document.frames["iframe Name"]或者document.frames["iframe ID"],但是window.frames["iframe Name"]或window.frames[index](index是索引值)也支持所有主流浏览器;
2.父页面中获取IFRAME的DOCUMENT对象
标准浏览器:通过iframeElement.contentDocument来引用iframe的doument对象,但是IE浏览器不支持,确切说应该是IE 6/7,IE8中可以用此方法来获取了。
IE:用window.frames[iframeId].document来获取
因为document是window的一个子对象,你也可以先获取iframe的window对象,再通过window.document来引用。
总结:应使用以下两方法来获取,见代码:
3.IFRAME页面获取父页面的WINDOW对象
parent:父页面window对象
window.parent
top:顶层页面window对象
window.top
self:始终指向当前页面的window对象(与window等价)
如果窗口是顶级窗口,那么parent==self==top
根据这个可以防止网页被嵌套:
兼容性:适用于所有浏览器,当拿到了父页面的window对象后,就可以访问父页面定义的全局变量和函数。
注:chrome要求在服务器环境下进行iframe操作。