관리 메뉴

I LOVE EJ

새창. 팝업창에 포커스 주기 본문

Web publishing/JavaScript

새창. 팝업창에 포커스 주기

BeOne 2010. 11. 24. 21:57

 새창에 포커스..
말 그대로 새로 창을 열며 포커스를 주는것이다. 
팝업창에 사용하게 되는데 ... 예를 들어 우편번호 찾기를 보자 

여러 사이트에서 회원가입을 하려면 기본적으로 <우편번호 검색> 이라는 버튼을 눌러서 팝업창을 띄울것이다 .
하지만 대부분 사이트에서 확인해보면 우편번호를 바로 입력하지 않고 다른창을 클릭하여
우편번호검색의 팝업창이 뒤로 밀린경우 ..
검색 버튼을 다시 눌러도 앞으로 돌아오지 않는곳이 많다..
이럴때마다 아래 작업표시줄에서 클릭하여 포커스를 주게 되는데
이게 생각보다 많이 불편했다.

보통 일반적으로 팝업창을 띄울때 사용하는 스크립트는 window.open() 이다.
function pop_open(){
    window.open("URL","팝업창이름","width=123, height=123, top=123, left=123,scrollbars=yes");

이렇게 만들것이다. 이렇게 만들면 처음 팝업창을 열면서 포커스를 바로 가져가게 된다..
하지만 기존에 열려 있는경우에는 ... 위에서 말한것 처럼 포커스가 주어지지 않게되어 ..
다른창에 가려져 안보이는경우에는 .. 초보 이용자분들께서는 창이 열리지 않는다고 할것이다.

이것을 간단하게 수정을 해보면..
function pop_open(){

    var pop_status; // 하나 만들어줌..

    pop_status = window.open("URL","팝업창이름","width=123, height=123, top=123, left=123,scrollbars=yes");

    pop_status.focus();

}

 

위 보라색으로 한 글씨처럼 변수를 하나 만들어 window.open 의 값을 담아 포커스를 준다..

끝..

 

위처럼 만들게되면 클릭을 하면 항상 새창으로 열게 된다.

항상 새창이 아닌 처음에만 새창으로 열겠다~!  라고 한다면

var pop_status=null;   이라는것을 function 밖에두어 전역변수(??)로 만들어주고...  

(전역변수 맞나 ㅡㅡ;;...  여튼 밖에 선언하여 항상 사용 가능하게끔 해주면됨...)

function 안에서 pop_status 의 값을 비교하여 null 이 아니거나 창이 닫겨 있지 않다면 포커스만 주고

그게 아니라면 새창을 열어주면된다.

 

var pop_status = null;  // 밖에다가 선언

 

function pop_open(){

    if(pop_status !=null && !pop_status.closed(
     {
          pop_status.focus();
          return;
      }
     pop_status = window.open("URL","팝업창이름","width=123, height=123, top=123, left=123,scrollbars=yes");
     pop_status.focus();
}
이렇게 해주면된다.

 

■ 새로운 방법
그거 그냥 pop.html 페이지에 window.focus()만 넣어 주면 됩니다..

<script language="javascript">
    window.focus();
</script>
위에 부분을 pop.html파일 head 사이에 넣주면 됩니다.

'Web publishing > JavaScript' 카테고리의 다른 글

오른쪽 마우스 버튼 못쓰게 하기  (0) 2011.02.16
딤드(deemed) 레이어 팝업  (2) 2011.01.05
스크랩  (0) 2010.06.22
qna 탭 예제  (0) 2010.06.22
팝업 중앙정렬  (0) 2010.06.18