定义标准接口
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 in Interface.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]; return childObj[funcName].call(parentWin, params); } demo <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>父页面</title> </head> <body> <script src="js/common.js"></script> <script> //传给子页面的值 Interface.ParentWin.setFunForChild("data", Interface.ParentWin.funName.getDataFun, function() { return value; }); //获取子页面函数并调用 window.fun; Interface.ParentWin.setFunForChild("test",Interface.ParentWin.funName.updateDataFun,function(param){ fun = param; }); //调用 var val = fun("1111"); console.log(val); </script> </body> </html> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>子页面</title> </head> <body> <script src="js/common.js"></script> <script> //父页面传入数据 var data = Interface.ChildWin.callBack("data", Interface.ParentWin.funName.getDataFun); console.log(data); //提供给父页面调用的函数 Interface.ChildWin.callBack("test",Interface.ParentWin.funName.updateDataFun,function(data){ alert(data); var str = "xxx"; return str; }); </script> </body> </html>
总结
以上所述是小编给大家介绍的JS 封装父页面子页面交互接口的实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
本文向大家介绍Django封装交互接口代码,包括了Django封装交互接口代码的使用技巧和注意事项,需要的朋友参考一下 我就废话不多说了,大家还是直接看代码吧~ 补充知识:python部署galery集群 galery.py文件内容 以上这篇Django封装交互接口代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
WeX5的前端是由若干个页面构成的,运行时,页面间有以下几种关系:Shell打开页面、页面与对话框的交互、页面与内嵌页面的交互。 Shell打开页面 WeX5中,Shell负责管理所有的页面;在同一时刻,允许多个页面同时运行,有且只有一个活动页面(即当前页面)。 配合 参考案例 :/UI2/demo/page/index.w 1、打开页面 打开页面时,可以调用以下api: justep.Shell
本文向大家介绍js父页面中使用子页面的方法,包括了js父页面中使用子页面的方法的使用技巧和注意事项,需要的朋友参考一下 iframe是非常常用的一个html元素,如果在父页面中使用子页面的方法应该怎么写呢,下面就做一下简单的介绍。 一、父页面代码 二、iframe中的代码 上面两个代码可以在父页面和子页面对对方的函数进行相互调用,比较简单,不多介绍了。 希望本文所述对大家学习javascript程
本文向大家介绍浅谈js中子页面父页面方法 变量相互调用,包括了浅谈js中子页面父页面方法 变量相互调用的使用技巧和注意事项,需要的朋友参考一下 (1)子页面调用父页面的方法或者变量: window.parent.方法()或者变量名 window.parent相当于定位到父页面 之后的操作和在父页面中写代码一样写 (2)父页面调取子页面 主要是通过contentWindow定位到子页面 以上这篇浅
本文向大家介绍javascript父子页面通讯实例详解,包括了javascript父子页面通讯实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript父子页面通讯的实现方法。分享给大家供大家参考。具体分析如下: 如果一个domain为 www.abc.com的页面内部包含一个name属性值为childFrame的iframe,并且这个iframe的domain为 sta
本文向大家介绍关于Iframe父页面与子页面之间的相互调用,包括了关于Iframe父页面与子页面之间的相互调用的使用技巧和注意事项,需要的朋友参考一下 iframe元素就是文档中的文档。 window对象: 浏览器会在其打开一个HTML文档时创建一个对应的window对象。但是,如果一个文档定义了一个或者多个框架(即:包含一个或者多个frame或者iframe标签),浏览器就会为原始文档创建一个w