Love, Free, Happiness, Courage, Faith, Belief, and Life.
나는 언제나 사랑할 준비가 되어있다. 그리고 언제나 뛸 준비가 되어있다.
@ sharin




자바스크립트, DOM (도큐먼트 오브젝트 모델)의 트리구조 專進基地

오늘 이거 때문에 3시간을 끙끙거린 바로는,
IE에서 길들여진 못된 습관은 FF에서 적용되지 않는다는 것이였다.

우선, 부모.asp에서 자식.asp로 팝업을 띄운다.
자식에서 선택된 값이 부모페이지에서 input의 value에 박혀야 한다는 것인데..

우선 IE에서 잘돌아가는 소스

function putApproverPath(APApprovePath, APNumber){

top.opener.docForm.APApprovePath.value = APApprovePath;
top.opener.docForm.APNumber.value = APNumber;
top.close();
}


근데, FF에서는 전혀 먹히지 않는다. 요녀석이 요동도 하지 않는다.
getElementById('APApprovePath')를 쓰기도 하고,
form에 객체니까, name을 주로 쓰니까..name으로? getElementByname로도 바꿔보고,
opener.document.docForm.getElementById('APApprovePath').value도 해봤지만,
먹지않는다...

도대체 어떻게 된것인지 모르겠다..뭐가 잘못된 것일까..

그리고는 생각했다. 우선 APApprovePath나, APNumberalert(APApprovePath);로 뿌려봤더니 나온다.
그러면, 결국 문서를 지정하는 opener나 document에서 부모창을 찾지 못한다는 것이였다.

opener.document.docForm.getElementById('APApprovePath').에서 top.을 추가했다.
프레임이 있는 팝업을 연동하는 것이니, [ 솔직히 거슬리지만..다른팀에서 그렇게 만들어놨다.]
top.이 있어야 되고, 팝업을 연 opener.그리고 문서를 안의 input임으로, document.getElementById().

그럼. 결국

function putApproverPath(APApprovePath, APNumber){

top.opener.document.getElementById('APApprovePath').value = APApprovePath;
top.opener.document.getElementById('APNumber').value = APNumber;
top.close();
}


으하하하!!!! 돌아가는 것이다!!! IE에서도, FF에서도 돌아가는 것이다!!!
ぐ(>▽< )ぐ 기분좋아 죽을것 같다!!!

그러나, 한편으로 드는 생각.
나는 아직도 문서의 구조를 깨닫지 못했구나 싶어서, 이리저리 찾아봤더니,
모질라 게시판에 좋은 글이 있었다. :)
좀 더 공부를 해야겠다 싶다.

getElementById 객체는 document 객체의 메소드
document 객체는 window의 하위객체
forms 객체는 window의 하위객체 입니다. document와 동급의 위치 - 박민권님


+ 태그 : , , , ,

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://sharin62.egloos.com/tb/3033623 [도움말]

핑백

  • sharin, a Low Flying in the City : document.all은 이제 안녕히. 2007-07-05 18:39:09 #

    ... document.all도 지난번 : 자바스크립트, DOM (도큐먼트 오브젝트 모델)의 트리구조 에서처럼, IE에서만 먹는 코딩이다.오늘 적용한 코딩은 그니까, 몇줄을 할것인지 정하고 그 줄만큼 tr을 뿌려주는것이다.보통 IE에서 do ... more

덧글

  • Joo8111 2007/03/05 23:03 # 답글

    오~ 맞아요.. IE가 이것도 되고 저것도 되고 하니까..
    만드는 사람의 입장에서는 그게 맞는 줄 알고 쓴다니까요.. -_

    좋은 글 감사합니다.
  • Paromix 2007/03/06 00:40 # 답글

    하핫;; 웹쪽은 역시 너무 다른나라 이야기 같아요.^^;;;
  • 저공비행사 2007/03/07 09:29 # 답글

    Joo8111/ 안녕하세요. Joo8111님. 그런거 같아요. 그래서 IE만 쓰면, 그게 표준인지 알고 쓰는경우가 많아요. 심지어는 a링크에 javascript:만 적으면 자바스크립트가 먹히는거 보고 " 이렇게 써도 되는구나"라고 생각한다는 말이죠. MS는 그러고 보면, MS만의 세계에서 노는거 같아요.

    Paromix/ 후훗, 저도 웹개발 외에 임베디드랄까, WAP이랄까, 그런분야는 저도 그렇게 느낍니다~.
덧글 입력 영역

알라딘광고하단