欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

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

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


这里使用 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 "";
}
}
}