opener.~ 을 사용할수 있나요??

국내에 웹 사이트들이 웹 표준을 지키고 OS나 브라우저와 관계 없이 접근성을 향상 시키기 위한 사이트 버그 신고 및 문제 해결을 위한 게시판입니다.
Post Reply
bumworld
Posts: 18
Joined: 2005 05 23 12:39 44
Contact:

opener.~ 을 사용할수 있나요??

Post by bumworld »

팝업을 띄워 부모창의 form에 값을 넣을려고 하는데 opener 사용시에

에러가 나더라구요..

opener.mainForm.goodsLink.value = frm.url.value;

이 코드 입니다.

has no propertise라고 나옵니다.

opener 사용은 어떻게 해야 하나요??
달아 달아 밝은 달아~
박민권
해커
해커
Posts: 724
Joined: 2005 01 31 22:33 55
Location: 대한민국
Contact:

Re: opener.~ 을 사용할수 있나요??

Post by 박민권 »

bumworld wrote:팝업을 띄워 부모창의 form에 값을 넣을려고 하는데 opener 사용시에

에러가 나더라구요..

opener.mainForm.goodsLink.value = frm.url.value;

이 코드 입니다.

has no propertise라고 나옵니다.

opener 사용은 어떻게 해야 하나요??
opener 사용에 문제는 없습니다.
다른 부분의 문제인지 확인해보세요.
bumworld
Posts: 18
Joined: 2005 05 23 12:39 44
Contact:

IE에서는 현재 잘 돌아갑니다..-_-'

Post by bumworld »

처음 테스트는 IE로 합니다.

문제 없이 잘 지나가구요.

그런데 불여우에서 문제가 생기네요.

IE설정도 스크립트 에러시 경고창 띄어주기 체크해놔서

문제가 있다면 뜰텐데 그런건 없었구요..

도체 무슨문제 인지 모르겠네요..
달아 달아 밝은 달아~
bumworld
Posts: 18
Joined: 2005 05 23 12:39 44
Contact:

문제의 함수 입니다..

Post by bumworld »

// select ok
function okCheck() {
// 확인했을시 value check
var frm = document.mainForm;
opener.mainForm.goodsLink.value = frm.url.value;
self.close();
}
달아 달아 밝은 달아~
hyeonseok
해커
해커
Posts: 691
Joined: 2004 08 11 22:14 59
Contact:

Post by hyeonseok »

opener 문제가 아니라 폼을 참조하는 구문이 잘못 되어서 그럽니다.

opener.getElementById("formID") 와 같은 DOM 표준을 사용하세요.
박민권
해커
해커
Posts: 724
Joined: 2005 01 31 22:33 55
Location: 대한민국
Contact:

폼객체 참조에서의 잘못이군요.

Post 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 했기에 오류가 생긴 것입니다.
bumworld
Posts: 18
Joined: 2005 05 23 12:39 44
Contact:

getElementById를이렇게사용가능한가요

Post by bumworld »

opener.getElementById('mainForm').goodsLink.value
= frm.url.value;

이런식으로 했는데 에러가 나더라구요..

이방법이 틀렸나요??

제가 아무래도 getElementById를 잘 이해하지 못한것 같습니다.

도움 부탁드립니다.

아~그리고 그냥 function을 사용할때는 opener.funname();

이렇게 사용해도 문제가 안되는지요??
달아 달아 밝은 달아~
박민권
해커
해커
Posts: 724
Joined: 2005 01 31 22:33 55
Location: 대한민국
Contact:

Re: getElementById를이렇게사용가

Post 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가 프로그래머들의 습관을 괴상하게 망쳐놨습니다.
저도 그런 나쁜습관을 가져버린 피해를 받았구요.
bumworld
Posts: 18
Joined: 2005 05 23 12:39 44
Contact:

답변 감사합니다..

Post by bumworld »

아무래도 현제 제 문제는 구조를 잘 모르는데서 오는것 같습니다.

window, document, opener, forms..

이것들의 구조를 알려고 하면 어떤 문서를 봐야 할까요??

한번더 도움주시면 감사하겠습니다..^^

부탁드립니다..
달아 달아 밝은 달아~
박민권
해커
해커
Posts: 724
Joined: 2005 01 31 22:33 55
Location: 대한민국
Contact:

Re: 답변 감사합니다..

Post 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의 속성과 메소드를
찾아보시면 됩니다.
Post Reply

Who is online

Users browsing this forum: Bing [Bot] and 1 guest