js父页面调用子页面数据时,子页面通过父页面传过来的参数回调父页面具体方法

今天写代码时发现同一页面多个地方需要调用同一个子页面,如果多个方法调用时,同一子页面回调父页面方法则会出问题,所以查了下资料,让这个功能通用化,根据具体方法回调具体父页面方法,顺便总结一下,希望以后可以有用,或许可以帮助需要帮助的人

这里使用 eval() 函数

定义和用法

eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。

父页面调用子页面的路径(子页面的路径)如下

http://localhoust:8080/oss-portlet/html/util/area.html?oid=4&name=测试&callBack=callBackDistrict

callback:参数为父页面的具体方法名称

子页面调用父页面的callback指定的方法

   eval(‘window.opener.‘ + getParams("callBack") + ‘(\‘‘ + ids + ‘\‘,\‘‘ + names + ‘\‘)‘);

window.close();

/**

* 获取页面路径参数值

*/

function getParams(key) {

var href = window.document.location.href;

if (href.indexOf("?") != -1) {

var paramStr = href.substring(href.indexOf("?") + 1, href.length);

if (paramStr.indexOf(key + "=") != -1) {

paramStr = paramStr.substring(paramStr.indexOf(key + "="),

paramStr.length);

if (paramStr.indexOf("&") != -1) {

return paramStr.substring(paramStr.indexOf("=") + 1, paramStr

.indexOf("&"));

} else {

return paramStr.substring(paramStr.indexOf("=") + 1,

paramStr.length);

}

} else {

return "";

}

}

}

时间: 2024-12-14 03:38:44

js父页面调用子页面数据时,子页面通过父页面传过来的参数回调父页面具体方法的相关文章

详解vue父组件传递props异步数据到子组件的问题

案例一 父组件parent.vue // asyncData为异步获取的数据,想传递给子组件使用 <template> <div> 父组件 <child :child-data="asyncData"></child> </div> </template> <script> import child from './child' export default { data: () => ({ as

父组件如何获取子组件数据,子组件如何获取父组件数据,父子组件如何传值

1.父组件如何主动获取子组件的数据 方案1:$children $children用来访问子组件实例,要知道一个组件的子组件可能是不唯一的,所以它的返回值是个数组 定义Header.HelloWorld两个组件 <template> <div class="index"> <Header></Header> <HelloWorld :message="message"></HelloWorld>

webservice调用服务端数据时给soapenv:Envelope 添加自定义的命名空间

最近做第三方接口,服务端需要 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://***.com/webservices" xmlns:cus="http://***/CustomUI">   <soapenv:Header>      <web:SessionType>***

C#调用excel导出数据时提示000208D5-0000-0000-C000-000000000046错误的解决办法

错误信息:000208D5-0000-0000-C000-000000000046 Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Interop.Excel.Application'. This operation failed because the QueryInterface call on the COM component for the interf

struts通过Ajax返回数据时,例如对象类型,没有执行Ajax的回调函数

<result type="json"  name="success">                 <param name="includeProperties">msg.*,对象.*</param>                <!--  <param name="includeProperties">msg</param> -->      

node源码详解(四) —— js代码如何调用C++的函数

声明:转载请保留声明头部并标明转载.并私信告知作者.原文:http://www.cnblogs.com/papertree/p/5285705.html 上面讲到node调用Script::Compile()和Script::Run()解析执行app.js,并把io操作和callback保存到default_loop_struct,那么app.js里面js代码如何调用C++的函数呢? 在4.2节进行解释,先在4.1节来点知识预热. 4.1 V8运行js代码的基础知识 —— V8的上下文 来看看g

删除数据时弹出一个确认对话框

使用js实现点击按钮删除数据时弹出一个确认是否删除的对话框: <input type="button" class="wz2 btn" value="删除" onClick="sc('{$vo.name}','__URL__/delete?aid={$vo.id}')"/> <script type="text/javascript"> function sc($name,$ulr)

iframe子页面js调用父页面js函数/父页面调用Iframe子页面中js方法

1.假设当前页面为a.html, iframe的src页面为b.html,其代码如下: 1 <span class="tag"><html> 2 <br></span><span class="tag"><head> 3 <br></span><span class="tag"><title></span><s

父页面调用iframe子页面js方法

<iframe name="demoIframe" src="demo.html"></iframe> demo.html : <head> <script> function query(){ alert(1); } </script> </head> 父页面调用: window.demoIframe.document.query();