웹마스터 팁
팝업창 띄우기
2008.03.16 13:53
제로보드 4 를 쓸때부터 홈페이지에 적용해서 쓰던 팝업창 소스를 제로보드 XE에서 적용하여 현재 쓰고 있는 방법입니다.
소스는 예전부터 여기저기 블로그 등에서 공개되었던 것으로 지금 현재도 사용시에 별문제가 없어서 계속 쓰고 있습니다.
다른 방법도 있으리라 생각되지만.. 혹 필요한 분이 계실까봐 조금이나마 도움이 되시라 올려봅니다.
우선 자신이 사용하고 있는 레이아웃의 디렉토리 속에 있는 JS 디렉토리 속의 xe_official.js 파일을 불러와서 편집을 합니다.
기본 레이아웃을 쓴다고 전제를 하고.. 기존의 xe_official.js 파일의 마지막 부분에 빨간 글씨 부분을 추가합니다.
// Hide And Show Toggle
var cc=0
function hideShow(id) {
if (cc==0) {
cc=1
document.getElementById(id).style.display="none";
} else {
cc=0
document.getElementById(id).style.display="block";
}
}
// Show And Hide Toggle
var cc=0
function showHide(id) {
if (cc==0) {
cc=1
document.getElementById(id).style.display="block";
} else {
cc=0
document.getElementById(id).style.display="none";
}
}
// Local Navigation Toggle
function lnbToggle(id) {
for(num=1; num<=3; num++) document.getElementById('D3MG'+num).style.display='none'; //D4MG1~D4MG3 까지 숨긴 다음
document.getElementById(id).style.display='block'; //해당 ID만 보임
}
// IS
function chkIsKind(key, value) {
showHide('selectOrder');
xGetElementById('+
'+
'search_target'+key).checked = true;
xInnerHtml('search_target_label', value);
}
//팝업창
function getCookie(name) //쿠키의 존재 유무를 알아내는 함수를 만듭니다.
{
var nameOfCookie = name + "=";
var x = 0;
while(x <= document.cookie.length)
{
var y = (x + nameOfCookie.length);
if(document.cookie.substring(x,y) == nameOfCookie)
{
if((endOfCookie = document.cookie.indexOf(";",y)) == -1)
endOfCookie = document.cookie.length;
return unescape(document.cookie.substring(y,endOfCookie));
}
x = document.cookie.indexOf(" ",x) + 1;
if(x == 0)
break;
}
return "";
}
if (getCookie("no_pop") != "ok" ) //no_pop 이라는 이름의 쿠키값이 ok 가 아니라면 다음의 새창 띄우기를 실행
{
window.open("pop_up.htm","hi", "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, width = 360 height = 320"); //파일 이름과 속성을 자신에 맞게 수정하면 됩니다.
}
제일 마지막 부분의 width=360 height=320 은 팝업창의 크기이니 원하는 크기로 지정하시면 됩니다.
추가가 되었으면 저장을 하시고 그 파일을 서버에 있는 같은 위치의 xe_official.js 파일에 덮어쓰기를 합니다.
이제 팝업창을 제작합니다.
새파일을 만들어서 다음 빨간 글씨를 복사해서 붙여 넣은 다음 원하는 팝업창 메세지를 작성하시고
pop_up.htm으로 저장합니다. 그 pop_up.htm 파일을 서버에 zbxe 디렉토리에 업로드 시키면 됩니다.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>타이틀 제목</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<SCRIPT language="JavaScript">
<!--
function setCookie(name,value,expiredays) //쿠키를 사용자에게 전달할 함수만들기
//setCookie(쿠키이름,쿠키값,쿠키만료시간)
{
var todayDate = new Date();
todayDate.setDate(todayDate.getDate() + expiredays);
document.cookie = name + "=" + escape(value) + "; path=/; expires=" + todayDate.toGMTString() + ";"
}
function closeWin()
{
if (cookie_form.chk.checked) //체크박스에 체크되 있다면(폼 이름,체크박스 이름을 맞춰주세요.)
setCookie("no_pop","ok",1); //쿠키이름은 no_pop,쿠키값은 ok,쿠키만료 기간은 1 일로 쿠키생성
//혹시 no_pop 이라는 이름의 쿠키를 이미 사용하고 있다면 이름을 바꿔주세요
self.close(); //창 닫기
}
// -->
</SCRIPT>
</head>
<body>
이곳에 원하시는 메세지를 편집해서 써 넣으시고..
<form name = "cookie_form">
<div align="right">
<input type = "checkbox" name = "chk">
<font size="2" face="굴림" color="#003366"><strong>오늘 다시 열지 않기</strong></font>
<input type = "button" value = "Close" onClick = "closeWin();">
</div>
</form>
</body>
</html>
설명이 제대로 됐나 모르겠네요.
초보가 맨날 도움만 받다가 혹시나 필요하신분이 계신것 같아서 용기내어 올려봅니다.
댓글 16
-
뺑두비쌈2
2008.03.16 15:26
-
레망
2008.03.17 09:42
pop_up.htm 속 위치 맞습니다.
<form name = "cookie_form">
<div align="right">
<input type = "checkbox" name = "chk">
<font size="2" face="굴림" color="#003366"><strong>오늘 다시 열지 않기</strong></font>
<input type = "button" value = "Close" onClick = "closeWin();">
</div>
</form>
이부분은 없어도 팝업창이 떠야하는데요..
-
주하니
2008.03.17 14:08
저같은 초보를 위해서 애드온으로 배포하실 계획은 없는지요 ^^;
-
레망
2008.03.17 15:19
주하니님
저역시 초보수준입니다.
제 능력이 애드온 제작.. 그정도까지 되지를 않습니다.
지금 저 소스들도 사방을 뒤지다가 퍼온것으로 저는 그냥 위치만을 찾아서 편집한것에 불가합니다. -
남국
2008.03.20 13:46
제공해 주신 소스 js 파일 중간쯤에 " } " 하나 추가 했고요 . 안됩니다. 소스 한번 봐주세요.
pop_up.htm 도 업로드했습니다.
레이아웃 라운드하우스 layout.js 파일입니다.
xAddEventListener(window,'load',setBarImageHeight);
xAddEventListener(document,'mouseover',showSubMenu);function setBarImageHeight() {
var height = xHeight("contentMain");
var clientHeight = xClientHeight();
if(clientHeight>height) height = clientHeight;
else height+=40;var leftImg = xGetElementById("contentLeftBar");
xHeight(leftImg, height);
xHeight(leftImg.parentNode, height);var rightImg = xGetElementById("contentRightBar");
xHeight(rightImg, height);
xHeight(rightImg.parentNode, height);
}var prevSubObj = null;
function showSub(obj) {
if(prevSubObj) prevSubObj.style.display = 'none';
obj.style.display = "block";
prevSubObj = obj;
}function closeSub(obj) {
if(prevSubObj) {
prevSubObj.style.display = 'none';
prevSubObj = null;
}
}function showSubMenu(evt){
var e = new xEvent(evt);
var obj = e.target;
var parent = null;if(obj.nodeName == 'A' && obj.parentNode) {
parent = obj.parentNode.parentNode;
} else if(obj.nodeName == 'DIV') {
parent = obj.parentNode;
}if(!parent || !parent.id || !/^main_menu_[0-9]+/.test(parent.id)) {
closeSub(obj);
return;
}var id = parent.id.replace(/^main_menu_/,'');
var subObj = xGetElementById('sub_'+id);
if(!subObj) {
closeSub(obj);
return;
}if(subObj.style.display != 'block') {
subObj.style.right = 0;
subObj.style.top = 0;
showSub(subObj);
}
}
//팝업창
function getCookie(name) //쿠키의 존재 유무를 알아내는 함수를 만듭니다.
{
var nameOfCookie = name + "=";
var x = 0;
while(x <= document.cookie.length)
{
var y = (x + nameOfCookie.length);
if(document.cookie.substring(x,y) == nameOfCookie)
{
if((endOfCookie = document.cookie.indexOf(";",y)) == -1)
endOfCookie = document.cookie.length;
return unescape(document.cookie.substring(y,endOfCookie));
}
x = document.cookie.indexOf(" ",x) + 1;
if(x == 0)
break;
}
return "";
}if (getCookie("no_pop") != "ok" ) //no_pop 이라는 이름의 쿠키값이 ok 가 아니라면 다음의 새창 띄우기를 실행
{
window.open("pop_up.htm","hi", "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, //팝업창
}
function getCookie(name) //쿠키의 존재 유무를 알아내는 함수를 만듭니다.
{
var nameOfCookie = name + "=";
var x = 0;
while(x <= document.cookie.length)
{
var y = (x + nameOfCookie.length);
if(document.cookie.substring(x,y) == nameOfCookie)
{
if((endOfCookie = document.cookie.indexOf(";",y)) == -1)
endOfCookie = document.cookie.length;
return unescape(document.cookie.substring(y,endOfCookie));
}
x = document.cookie.indexOf(" ",x) + 1;
if(x == 0)
break;
}
return "";
}if (getCookie("no_pop") != "ok" ) //no_pop 이라는 이름의 쿠키값이 ok 가 아니라면 다음의 새창 띄우기를 실행
{
window.open("pop_up.htm","hi", "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, width = 360 height = 320"); //파일 이름과 속성을 자신에 맞게 수정하면 됩니다.
}
-
레망
2008.03.21 05:56
아이고 죄송합니다. 지금보니 소스가 중복이 되어있었습니다.
다시한번 위 수정된거로 해보시기 바랍니다.
제가 초보라서 제대로 답변은 못해드리네요.. 일단 중복인된거 확인한거니까 다시 한번 해보세요 -
남국
2008.03.21 00:11
제로보드 XE 1.0 쓰고 있습니다. -
뽀칠이
2008.04.03 15:49
팝업은 잘 뜨는데 문제가 하나 있네요.
팝업창이 순간적으로 뜨더니 메인페이지 뒤로 가버리네요.
왜 그럴까요. 제가 아무래도 문제겠지요? -
레망
2008.04.03 23:47
저도 가끔 그러는데요... 정확한 이유는 잘 모르겠지만 팝업창이 아무래도 사이즈가 작으니 로딩이 먼저 되고 그 다음에 메인페이지가 로딩이 되면서 메인페이지가 앞으로 나오는것 같습니다. 팝업창을 항상 위에 나타나게 하면 될것 같은데 그런 소스가 있는지 또 찾아봐야겠네요..
-
gajagu
2008.07.24 12:43
-
감ㅈ자
2008.07.26 20:11
이것도 소스라고 주냐??
내가 발로짜도 이거보다는 났겠다. -
음주가무꼬맹이
2008.09.05 11:46
아 욕나올라고하네 발로짜바 ㅄ아 넌 제로보드 쓰지마라 어떻게 한번에 완제품이 나올 수 있겠냐 이것저것 연구해서 발표하고 그러면서 버전업되는거지 니가 날때부터 소스알고 태어났냐? 조ㅅ도 모르는 감자 ㅅㅅㅐㄱㄱㅣ -
나나나나난
2008.09.30 18:28
그러면 메인에 팝업을 하나밖에 못띄우는 건가용? -
kiaora1014
2009.06.09 17:52
가르쳐주신대로 했더니 제 컴퓨터에서는 뜨는데..
다른 컴퓨터에서 접속하면 팝업창 크기의 하얀페이지가 뜹니다 ㅠㅠ
어떻게 고칠 수 있는 방법 없을까요...
-
글쓴이
2009.07.08 03:09
해주신 방법대로 잘 따라 하였는데, 계속 페이지가 바뀔 때마다 팝업창이 계속 뜨는건 왜 인건가요?
오늘 다시 열지 않기가 적용이 안되는 것 같은데요?
-
김덕본
2009.09.08 11:01
감사..감사..꼭 필요했던 사항이었는데
잘 쓰고 있습니다...^-^
제목 | 글쓴이 | 날짜 |
---|---|---|
주민등록 입력 폼 1.2.0 [55] | 개돌 | 2009.04.10 |
http://www.도메인주소/~as/xe/ 로 로그인 접속후~ [3] | wjnam | 2009.09.07 |
팝업창 띄우기 [16] | 레망 | 2008.03.16 |
[수정] 쉽게 간단하게(?) 플래시 그래프를 게시판에 넣어 보세요 ^^ [3] | 상오기 | 2009.08.27 |
에디터 본문 및 댓글 입력 글자크기 줄이기 [5] | HIKARU | 2008.11.24 |
에디터의 옵션 설정하기.. 컴포넌트 보이지 않게 등.. [4] | 지허 | 2007.10.01 |
http 두번 븥는 문제 .. 위젯 스타일 스퀘어 페이스 more 버그입니다. [2] | 최영석222 | 2009.07.25 |
이전글,다음글 얻기 (검색결과 까지 포함) (수정) [8] | 라르게덴 | 2008.06.05 |
[초보팁] 우리말 수정하기(예제: 가입창 이름란 삭제) [3] | 블루파티 | 2008.08.19 |
블로그, 홈페이지 가입시 자동 입력되는 http:// 없애기 [2] | 류영무 | 2008.09.09 |
페이지 모듈에도 게시판제목 처럼 다는 쉬운방법... [2] | 만쓰별(정만) | 2009.01.23 |
홈페이지 주소 깔끔하게 사용하기 [초보용] [14] | 똑디 | 2007.10.13 |
XOOPS (News Module) → XE 자료 옮기기 [3] | June Oh | 2009.08.17 |
Cooliris Embed a Wall 위젯 v2.0에 동영상 반영시키기 [3] | 철쌤 | 2009.08.08 |
하드 압축 하실때 tar cvfpz 쓰시는분들..... [3] | 우리아기 | 2009.08.13 |
통합검색에서 확장변수 검색하기 [5] | StyleD | 2008.10.12 |
회원 팝업메뉴에서 작성글 클릭시 다른 아이디 검색 안되게 하기 [3] | 절망린 | 2009.07.03 |
사이트 주소로 접속했을때 XE폴더로 이동하기 #2 [15] | 베니 | 2008.03.28 |
[비나무님글 ] xe_official_v2 레이아웃 사이트맵 없애는 방법 [3] | 토니박스 | 2009.07.29 |
상단로그인..? [10] | 빽짱구 | 2008.04.15 |
적당한 위치를 찾아서 다음 소스를 넣어주시면 됩니다. <<<적당한 위치라는게..pop_up.htm안에 위치를 말씀하시는건가요??
기본레이아웃이 아니라서 그런지.....팝업이 뜨질않네요...ㅜ.ㅜ 레이아웃에 있던 가가채팅도 안뜨고....ㅜ.ㅜ