반응형

부모 쪽

$(window).load(function() {
       sendMsg();
    });

    function sendMsg() {
        vSendData = vEmail + "^" + vComCode + "^" + vDomain + "^" + vPwd;  //보내는 데이터
        document.getElementById('sof').contentWindow.postMessage(vSendData, 'url');
    }

 

자식 쪽

//Get Data
        bind(window, 'message', function (e) {

            //Get data
            var get = new Object();

            //vEmail=Email^vEmail=CompanyCode          
            //alert(e.data);

            try {
                //데이터 유무 확인
                if (e.data != null || e.data != "") {

                    var vResult = e.data;

                    var ret = vResult.substr(0).split("^");

                    for (var i = 0; i < ret.length; i++) {
                        var r = ret[i].split("=");
                        get[r[0]] = r[1];
                    }

                    //변수 확인
                    if (get["vEmail"] == null || get["vEmail"] == "") {
                        throw "[Error]E-Mail : (" + get["vEmail"] + ")";
                    }
                    else if (get["vComCode"] == null || get["vComCode"] == "") {
                        throw "[Error]Company Code : (" + get["vComCode"] + ")";
                    }
                    else if (get["vDomain"] == null || get["vDomain"] == "") {
                        throw "[Error]Domain Info  : (" + get["vDomain"] + ")";
                    }
                    else if (get["vPwd"] == null || get["vPwd"] == "") {
                        throw "[Error]Password Info  : (" + get["vPwd"] + ")";

                    }
                    else {
                        fnAutoSearchData(get);

                        //Check Success 
                        
                        //test Data
                        //$('#email').val() = get["vEmail"] + "/" + get["vComCode"];
                        //document.getElementById("email").value = get["vEmail"] + "/" + get["vComCode"];
                    }
                }
            } catch (e) {
                alert(e);
                console.log(e);
            }
        });

        function bind(elem, type, handler, capture) {
            type = typeof type === 'string' && type || '';
            handler = handler || function () { ; };

            if (elem.addEventListener) {
                elem.addEventListener(type, handler, capture);
            }
            else if (elem.attachEvent) {
                elem.attachEvent('on' + type, handler);
            }

            return elem;
        };

 

간략 요약

부모 창의 데이터를 자식 창의 데이터로 옮기는 작업

하지만 크로스 도메인의 이슈 때문에 지금은 사용 못하는 것으로 확인 됩니다.

+ Recent posts