파폭에서 insertBefore가 안될때...
다음과 같은 코드문제였다.
function CreateForm(nm,mt,at,tg){
var f=document.createElement("form");
f.name = nm;
f.method = mt;
f.action = at;
f.target = tg;
return f;
}
function AddHidden(f,n,v) {
var i=document.createElement("input");
i.type = "hidden";
i.name = n;
i.value = v;
f.insertBefore(i);
return f;
}
function Run(){
var frm = CreateForm("form1","post","action.jsp","_blank");
frm=AddHidden(frm,"m","mode1");
document.insertBefore(frm);
frm.submit();
}
예전에 동적으로 폼객체를 만들어 전송할때 많이 사용들 했던 자바 스크립트 코드...
실제로 보면 크게 문제 될것 같지 않는데 동작되지 않는 이유는..바로 insertBefore에 있다.
var insertedElement = parentElement.insertBefore(newElement, referenceElement);
DOM 의 insertBefore 인자는 두개. 두번째 인자는 추가될 위치를 명시할 때 사용되는데
이 두번째 인자가 빠졌기 때문에 동작되지 않았던 셈...
또 하나 웹표준화와 더불어 Form객체는 body아래에 존재해야 하기 때문에 form 객체를 document 하위가 아닌 document.body 아래 넣어야 한다. 결국 다음과 같이 수정하면 끝.
document.body.insertBefore(frm,null);
'WEB2.0' 카테고리의 다른 글
또 하나의 Chart 오픈 소스. Fusion Chart (0) | 2009.09.07 |
---|---|
[웹표준]W3C Markup Validation (0) | 2009.08.24 |
기업환경에 적합한 RIA선택하기 (0) | 2009.01.28 |
고급 자바스크립트 활용 II (0) | 2008.04.02 |
고급 자바스크립트 활용Ⅰ-Ⅰ (0) | 2008.04.02 |