java中主页面与子页面交互,js 封装父页面子页面交互接口

Interface={};

Interface.ParentWin={};

Interface.ChildWin={};/**

* 父页面提供的标准接口函数名称*/Interface.ParentWin.funName={

getDataFun:"getDataFun", //子页面调用,提供给子页面的数据接口

updateDataFun: "updateDataFun", //子页面调用,向父页面提交数据接口

closeFun: "closeFun" //子页面需要关闭时,调用父页面的关闭窗口接口

}/**

* 父页面设置需要提供给子页面的接口函数

* @param childWinId :要使用的子页面对应接口的id,该id需要与子页面中定义的id一致

* @param functionName : 需要注册的回调函数名称,接口名称只能是Interface.ParentWin.funName中定义的名称

* @param callbackFun :子页面数据向父页面更新数据时的回调函数,接口入参为js对象*/Interface.ParentWin.setFunForChild= function(childWinId, functionName, callbackFun) {if(comm.isEmpty(childWinId)) {

alert("没有为子页面调用接口定义对象Id");return;

}//保存父页面提供给子页面调用的接口总对象

if(comm.isEmpty(window.childCallbackObj)) {

window.childCallbackObj={};

}//与指定子页面对应的回调接口对象

var childCallbackObj =window.childCallbackObj;if(comm.isEmpty(childCallbackObj[childWinId])) {

childCallbackObj[childWinId]={};

}var childObj =childCallbackObj[childWinId];if (!comm.isEmpty(childObj[functionName])) {

alert("子页面" + childWinId + " 所需调用接口已存在" +functionName);return;

}//检查接口是否为注册的接口

for (var pro inInterface.ParentWin.funName) {if (Interface.ParentWin.funName[pro] ==functionName) {

childObj[functionName]=callbackFun;return;

}

}

alert("子页面 " + childWinId + " 所需调用接口未注册:" + functionName + "。请检查接口定义声明对象。");

}/**

* 检查指定的子页面调用接口是否存在*/Interface.ChildWin.checkValid= function(childWinId, funName) {var parentWin =window.parent;var childCallbackObj =parentWin.childCallbackObj;if(comm.isEmpty(childWinId)) {

alert("子页面调用接口定义对象Id不能为空!");return false;

}if(comm.isEmpty(childCallbackObj)) {

alert("父页面调用接口定义的对象不存在");return false;

}var childObj =childCallbackObj[childWinId];if(comm.isEmpty(childObj)) {

alert("子页面调用接口定义的对象不存在");return false;

}if(comm.isEmpty(childObj[funName])) {

alert("父页面调用接口定义不存在:" +funName);return false;

}return true;

}/**

* 子页面调用父页面的接口函数

* @childWinId :子页面定义的自身页面Id

* @funcName : 需要调用的回调函数名称

* @params : 需要传递的参数

* @return :如果函数有返回值则通过其进行返回*/Interface.ChildWin.callBack= function(childWinId, funcName, params) {if (!Interface.ChildWin.checkValid(childWinId, funcName)) {return;

}var parentWin =window.parent;var childObj =parentWin.childCallbackObj[childWinId];returnchildObj[funcName].call(parentWin, params);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值