Page 1 of 1
opener.~ 을 사용할수 있나요??
Posted: 2005 05 24 19:32 18
by bumworld
팝업을 띄워 부모창의 form에 값을 넣을려고 하는데 opener 사용시에
에러가 나더라구요..
opener.mainForm.goodsLink.value = frm.url.value;
이 코드 입니다.
has no propertise라고 나옵니다.
opener 사용은 어떻게 해야 하나요??
Re: opener.~ 을 사용할수 있나요??
Posted: 2005 05 24 19:45 20
by 박민권
bumworld wrote:팝업을 띄워 부모창의 form에 값을 넣을려고 하는데 opener 사용시에
에러가 나더라구요..
opener.mainForm.goodsLink.value = frm.url.value;
이 코드 입니다.
has no propertise라고 나옵니다.
opener 사용은 어떻게 해야 하나요??
opener 사용에 문제는 없습니다.
다른 부분의 문제인지 확인해보세요.
IE에서는 현재 잘 돌아갑니다..-_-'
Posted: 2005 05 24 19:49 28
by bumworld
처음 테스트는 IE로 합니다.
문제 없이 잘 지나가구요.
그런데 불여우에서 문제가 생기네요.
IE설정도 스크립트 에러시 경고창 띄어주기 체크해놔서
문제가 있다면 뜰텐데 그런건 없었구요..
도체 무슨문제 인지 모르겠네요..
문제의 함수 입니다..
Posted: 2005 05 24 19:51 42
by bumworld
// select ok
function okCheck() {
// 확인했을시 value check
var frm = document.mainForm;
opener.mainForm.goodsLink.value = frm.url.value;
self.close();
}
Posted: 2005 05 24 20:43 55
by hyeonseok
opener 문제가 아니라 폼을 참조하는 구문이 잘못 되어서 그럽니다.
opener.getElementById("formID") 와 같은 DOM 표준을 사용하세요.
폼객체 참조에서의 잘못이군요.
Posted: 2005 05 24 22:20 31
by 박민권
opener.document.mainForm.goodsLink.value
window 객체에서 바로 폼 객체를 참조하려 했기에 생긴 문제였군요.
window.document.폼.폼내의 객체 이런식으로 참조하시기 바랍니다.
function okCheck() {
// 확인했을시 value check
var frm = document.mainForm;
opener.mainForm.goodsLink.value = frm.url.value;
self.close();
}
위 코드에서 document.mainForm 이 부분을 보면 document로 부터 참조하셨는데
opener라는 것은 window객체이고 때문에 opener.mainForm 했기에 오류가 생긴 것입니다.
getElementById를이렇게사용가능한가요
Posted: 2005 05 25 10:40 32
by bumworld
opener.getElementById('mainForm').goodsLink.value
= frm.url.value;
이런식으로 했는데 에러가 나더라구요..
이방법이 틀렸나요??
제가 아무래도 getElementById를 잘 이해하지 못한것 같습니다.
도움 부탁드립니다.
아~그리고 그냥 function을 사용할때는 opener.funname();
이렇게 사용해도 문제가 안되는지요??
Re: getElementById를이렇게사용가
Posted: 2005 05 25 11:49 27
by 박민권
bumworld wrote:opener.getElementById('mainForm').goodsLink.value
= frm.url.value;
이런식으로 했는데 에러가 나더라구요..
이방법이 틀렸나요??
제가 아무래도 getElementById를 잘 이해하지 못한것 같습니다.
도움 부탁드립니다.
아~그리고 그냥 function을 사용할때는 opener.funname();
이렇게 사용해도 문제가 안되는지요??
getElementById는 객체의 id를( <div id="test"> ) 문자열 인수로 취해 해당
id를 가진 객체를 참조하는 객체 입니다.
흑흑... 제 답변도 봐주셨다면 ㅠ_ㅠ
getElementById 객체는 document 객체의 메소드 입니다.
때문에 document.getElementById 라고 하여야 됩니다.
여기서 documnet 객체는 window의 하위객체 입니다.
window.document.getElementById() 가 맞는 것입니다.
getElementById를 쓰시려면 opener.document.getElementById() 라고 하셔야 합니다.
보통 <form> 태그 작성시 <form name="frm"> 이렇게 작성하시죠.
getElementById를 통해 객체를 참조 하시려면 <form name="frm" id="frm">
하셔야 합니다. id도 주어야 참조가 가능하죠.
보통 form 태그는 name만 사용하므로 getElementsByName()을 사용하세요.
opener.document.getElementsByName('frm') 이런식으로 하시면 됩니다.
forms 객체는 window의 하위객체 입니다. document와 동급의 위치죠.
때문에 window.forms['frm'] 로 참조가 가능합니다.
DOM (도큐먼트 오브젝트 모델)의 트리구조를 파악하시면 자바스크립트 하시는데
많은 도움이 되실 겁니다.
여튼 IE가 프로그래머들의 습관을 괴상하게 망쳐놨습니다.
저도 그런 나쁜습관을 가져버린 피해를 받았구요.
답변 감사합니다..
Posted: 2005 05 25 12:31 38
by bumworld
아무래도 현제 제 문제는 구조를 잘 모르는데서 오는것 같습니다.
window, document, opener, forms..
이것들의 구조를 알려고 하면 어떤 문서를 봐야 할까요??
한번더 도움주시면 감사하겠습니다..^^
부탁드립니다..
Re: 답변 감사합니다..
Posted: 2005 05 25 14:48 55
by 박민권
bumworld wrote:아무래도 현제 제 문제는 구조를 잘 모르는데서 오는것 같습니다.
window, document, opener, forms..
이것들의 구조를 알려고 하면 어떤 문서를 봐야 할까요??
한번더 도움주시면 감사하겠습니다..^^
부탁드립니다..
이미지로 잘 정리된 자료가 있으면 좋을텐데요.
http://www.mozilla.org/docs/dom/domref/
모질라 사이트에 있는 Gecko DOM 레퍼런스 입니다.
DOM window Reference 를 클릭해 보시면
window.document 라는 것을 알 수 있고
DOM Document Reference 를 통해서 document의 속성과 메소드를
찾아보시면 됩니다.