[펌글] Window객체의 기본속성 closed, status, length, name, opener, parent, self, top

By | 8월 22, 2008


window 객체의 속성들의 상당수가 네비게이터에서만 지원되는
속성이기 때문에 여기서는 제외 하고 익스플로러와 네비게이터
에서 공통으로 작동하는 속성을 알아보자.

closed 속성

open 함수를 이용해서 window 를 열어주었을때 그 윈도우가 닫혔
는지를 알수 있는 속성이다. 이때 open 함수는 레퍼런스를 써서
창을 열어줘야 한다. 레퍼런스가 뭐냐거?? 그냥 하나의 변수라고
이해해두자. 이를테면

  var maddog = window.open(' http://www.tagmania.net','_new','');

이런 식으로 윈도우를 새로 열어준 다음에 closed 속성값을 얻으려면

window.maddog.closed

라고 쓴다는 말이다. 결과 값은 창이 닫혔을 경우 true 값을, 안닫
혀있을 경우 false 값을 가진다.

새로 창을 열고 사용자가 그 창을 닫았는지 또는 닫지 않았는지를 판별
해서 각각 틀린 멧세지를 alert 창으로 띄우는 스크립트를 만들어보자.

<script>

var maddog = window.open('http://www.tagmania.net','_new','');

function aaa()  {
  if(window.maddog.closed)  {
      alert('새 창을 닫으셨군요. 다시 띄워드립니다');
      maddog = window.open('http://www.tagmania.net','_new','');
  }
  else {
      alert('새 창이 열린채로 있습니다');
      return false ;
  }
}

</script>
<a href=# onclick='aaa()'>새창 열기</a>

위 소스가 니덜 브라우저에 로딩 되면서 태그매니아 싸이트를 새창으로 연다.
사용자가 새 창을 닫았으면 window.maddog.closed 의 값은
true 가 되어 if 안의 구문을 실행 하고 안닫혔으면 window.maddog.closed
의 값은 false 값이 되어 else 구문을 실행한다.
else 구문에 return false 부분은 '링크를 안눌른걸로 해버려' 라는 뜻이다.
소스를 실행해볼때는 뜨는 새창을 열어놓은 상태에서 한번 링크를 눌러보고
닫아버린 상태에서 한번 더 링크를 눌러보면 그 차이를 알수 있다.

status 속성과 defaultStatus 속성

status 속성은 브라우저의 상태바에 관한 속성이다.
이 값을 하나의 문자열로 정의 해주면 브라우저의 상태바에 정의된 문자열이
써진다. defaultStatus 속성과의 차이는 defaultStatus 속성은 정해준 문자
열이 한번 정해지면 계속 그 문자가 상태바에 써지는것이고 status 는 임시로
특정한 함수 실행중에만 상태바에 문자를 출력할때 써지는 차이가 있는데
사실 익스플로러에선 두 속성이 동일하게 작동 한다.
근데 status bar(상태바)가 뭔지는 알지??

<script>
function aaa()  {
   window.status = 'status 예제';
  
}
</script>
<a href=# onmouseover='aaa();return true;'>상태바 확인</a>

위 소스의 status 를 defaultStatus 로 수정한다음 실행해보고 또 두개를
같이 넣어서 실행해보면 알수 있다.

length 속성

이 속성은 윈도우가 몇개의 프레임으로 나눠져있는가를 알수 있는 속성이다.
그러므로 당연히 body 부분이 없는 frameset 문서에서는 어떻게 써볼 도리가
없고 프레임으로 나눠진 윈도우에 삽입되는 여러문서들중 어느 한문서에서
이용되는 속성이다. 또 이 속성값을 제대로 참조하려면 top 속성이나
parent 속성을 더 써주어야 한다. 그냥 window.length 의 값은 무조건 0이기
때문이다. top 속성은 자신이 속한 문서가 삽입된 최상위 윈도우를 말하는것
이고 parent 속성은 자신이 속한 문서의 한단계 위 프레임을 말하는 것이다.

name 속성

윈도우의 이름을 다룰수 있는 속성이다.
이 속성을 이용해 지어진 윈도우의 이름은 링크태그 a 에 target 값으로 쓰여
질수 있다. 여러 프레임으로 나눠진 웹 문서의 각 프레임에 삽입된 문서안에서
name 속성을 잘 이용하면 frameset 의 지어진 이름을 한번 로딩 되고 나서
그 이름을 바꾸거나 또는 변경함으로써 조건에 따라 문서가 로딩 되게도, 그렇지
않게도 할수 있는 속성이다. 이용 방법은 각자 생각해보자.

 

opener 속성  

이 속성은 이것이 들어간 웹 문서를 열어준 윈도우에 대한 속성이다.  
팝업으로 '어떤 문서'를 열어줄때 이 '어떤 문서' 에서 window.opener의  
값은 팝업을 열어준 창이 되는 것이다. 이것을 잘 이용하면 전혀 독립 되  
어있는것처럼 보이는 두 윈도우를 서로 어느 하나에 예속 시켜서 하나는  
메뉴창으로, 하나는 그 메뉴가 뜨는 창으로 쓸수 있다.  

<script>  
function aaa(url) {  
  window.opener.location = url;  
}  
</script>  
<a href=# onclick='aaa("http://www.tagmania.net");>태그매니아</a>  
<a href=# onclick='aaa(" http://naver.com ");>네이버</a>  
<a href=# onclick='aaa(" http://korea.com ");>코리아닷컴</a>  

위 소스를 하나의 웹 문서로 저장해서 이 문서를 팝업으로 띄워주면  
위에서 말한 그런 형태의 메뉴창과 메인창이 되는 것이다.  

offscreenBuffering 속성  

이 속성은 웹 문서가 브라우저에 의해 열릴때의 버퍼링형태를 지정해주는  
속성이며 false, true, auto 의 셋중 하나의 값을 지닌다.  
false 로 정해주면 버퍼링이 실행 되지 않으며 true 는 그 반대이다. auto  
는 사용자의 브라우저 설정대로 한다.  
동영상이나 소리파일같은 미디어 파일을 스트리밍 할때 이 설정을 false  
로 해 놓으면 사용자의 컴퓨터에 그 미디어 파일데이터가 남아있지 않게  
된다........고 하던데 아닝거 같다.ㅡ,.ㅡ  

parent 속성  

프레임으로 나눠진 윈도우에서 자신이 속한 윈도우의 한단계 위 프레임또는  
윈도우의 속성이다. 프레임으로 나뉘어진 윈도우의 각각의 프레임은 또 다른  
프레임으로 나뉜 문서일수 있으므로 parent 속성과 top 속성은 각각 다르게  
작동 한다.  

top 속성  

이 속성은 무조건 최상위 윈도우를 그 대상으로 한다는 점에서 parent 속성과  
차이가 있다.  

self 속성  

self 속성은 그 문서 자체의 윈도우를 말 하며 프레임으로 나뉜 윈도우에서  
프렘에 삽입된 문서안에서의 self 란 그 문서가 속해있는 프레임을 가르킨다.  

screenLeft, screenTop 속성  

브라우저의 문서 시작점 왼쪽 모서리 위치의 값을 가지는 속성이다. 이 값을  
가져오기만 할뿐 임의로 정해주거나 수정할수 없는 읽기 전용 속성이다.  
screenTop 속성값은 브라우저 맨위 꼭지점 값이 아니고 본문이 시작하는 위치  
이다. 브라우저 상단 메뉴바 툴바 로케이션바를 제외한 부분의 위치를 말한다.  
하지만 브라우저 가로 세로 크기를 가져오는 속성값은 없다.  

window 객체의 속성에 관해서 주절주절 두번에 걸쳐 짖어봤는데, 지나고 보니  
엄청나게 유용한 거라는 느낌을 주는 속성이  없을듯 싶다.  
그래도 대강 이런 속성이 있다는 정도는 알고 넘어가야 나중에 아쉬우면 한번쯤  
찾아 뒤적일수 있는 건덕지가 있는거다.  

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments