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

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

WBOY
WBOYOriginal
2016-06-24 11:57:27898browse

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


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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn