当前位置:编程学习 > JS >>

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

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

[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脚本如下:

www.zzzyk.com
[javascript]
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函数:

[javascript]
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需要同域。

摘自 心灵净土

补充:web前端 , JavaScript ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,