Js ifame和父窗口内函数如何互调

来源:互联网 发布:模拟退火算法 matlab 编辑:程序博客网 时间:2024/06/11 10:14

页面A,其内部有个iframe,部分 html代码如下:

<div><iframe name="ifm" width="100%" height="829" id="ifmApp" src="B.asp?co=1&tp=5&ut=1&id=&gd=11&gm=1&ar=2&sv=0" frameBorder="0" marginWidth="0" marginHeight="0" scrolling="no"></div>

A页面中有段js脚本如下:

var System={        CloseFrame:function () {        try{                var frames=document.getElementById("ifmApp");                 var AppHelper= frames.contentWindow.AppHelper;                 if(AppHelper!=null && typeof(AppHelper)=="object"&&typeof(AppHelper.CloseQuery)=="function"){                                    if(!AppHelper.CloseQuery())return ;                 }            }catch(e){                        }           System.Close();    },    Close:function () {        document.body.removeChild(ifrm);    }   };

iframe src所对应的B.asp页面,其中有js函数:

var Apphelper={CloseQuery:function(){if(val="1")return true;return false;},Close:function(){if(parent!=null&&typeof(parent)=="object"){                             var System=parent.System;                if(System!=null && typeof(System)=="object"){                    if(System.Close!=null && typeof(System.Close)=="function"){                        System.Close();                        return;                    }                }            }}};

父页面A,通过调用自己的System.CloseFrame来调用ifrme中的函数Apphelper.CloseQuery

Ifame中的B页面,通过调用自己的Apphelper.Close函数来调用父窗口中的System.Close

当然,实现这样的简单调用有个前提,就是A和B需要同域。

原创粉丝点击