개발관련/기타2012. 2. 24. 09:25
parent html 안에 iframe을 넣고 iframe에 form을 만들어 값을 사용할 경우가 있다.
그러나 parent에서 form submit을 하면 iframe의 form값은 사용할 수 없다.
그래서 parent에 hidden값을 세팅해서 iframe 안의 form 값을  parent.document 를 이용하여 값을
넘기기도 하는데, 그 개수가 많으면 손이 많이간다.

아래 방법은 일관적으로 iframe의 form안의 필드들을 parent 쪽에 hidden html을 만들어서 사용하는
방법이다.

 /* iframe 폼값을 hidden html로 작성 */
function getFormValue(thisFrm) {
var theHtml = "";
//--- form 존재 유무 확인
if (thisFrm == "" ) {
   window.alert("Form 객체 코딩 오류 ! ( Form Name 체크하세요!)");
   return theHtml;
}
//--- MOVE_FORM의 필드 생성
var theFieldAll = thisFrm.all.tags("INPUT");
var theLen = theFieldAll.length;
for (var i = 0;i < theLen;i++) {
theField = theFieldAll[i];
if ((theField.type == "radio") || (theField.type == "checkbox")) {
if (theField.checked) {
theHtml = theHtml + "<input type='hidden' name='" + theField.name + "' value='" + theField.value + "'><br>";
}
} else {
//theHtml = theHtml + "<input type='hidden' name='" + theField.name + "' value='" + theField.value + "'></input><br>";
}
} // for
var theFieldAll = thisFrm.all.tags("TEXTAREA");
var theLen = theFieldAll.length;
for (var i = 0;i < theLen;i++) {
theField = theFieldAll[i];
if(theField.value != "") {
theHtml = theHtml + "<input type='hidden' name='" + theField.name + "' value='" + theField.value + "'></input><br>";
}
} // for
var theFieldAll = thisFrm.all.tags("SELECT");
var theLen = theFieldAll.length;
for (var i = 0;i < theLen;i++) {
theField = theFieldAll[i];
for (var j = 0;j < theField.length;j++) {
if (theField.options[j].selected) {
theHtml = theHtml + "<input type='hidden' name='" + theField.name + "' value='" + theField.options[j].value + "'></input><br>";
}
} // for
} // for
return theHtml;
}


/* iframe 폼값을 html로 만들어서 HIDDEN_INFO div에 넣는다 */
function moveIfrmtomain() {

var hiddenInfo = iframeName .document.iframeFormName;  //iframe 안의 form을 변수로 설정

this.HIDDEN_INFO.innerHTML = "";  //parent html 안에 있는 div 
this.HIDDEN_INFO.innerHTML = getFormValue(hidden Info);

       alert(this.HIDDEN_INFO.innerHTML);   //여기서 alert으로 HIDDEN_INFO <div>에 들어간 값을 확인

}


parent html에 있는 div(보이지 않게 처리) 태그를 넣으면 이곳에 hidden input html이 만들어진다.
<div id=" HIDDEN_INFO" style="display:none"></div> 

 

'개발관련 > 기타' 카테고리의 다른 글

[펌]Javascript 이벤트핸들러  (0) 2010.06.15
[펌]html 특수문자 입력  (0) 2010.06.08
[펌]Javascript 구조와 객체들  (0) 2009.03.03
Posted by 자개비