Category
show
전체 (775)
웹표준, 웹접근성™ (5)
웹프로그래밍™ (360)
웹기획™ (0)
웹디자인™ (5)
서버™ (32)
데이터베이스™ (43)
개발자료 (9)
트랜드 (60)
Study English (2)
블루비 (70)
오피스 다이어리 (19)
Textcube (2)
이슈 (20)
컴퓨터 악세사리 (18)
엔터테인먼트 (24)
좋은글 (73)
재테크 (1)
이벤트 (4)

[Javascript] Override window.alert()

웹프로그래밍™/jQuery, Javascript 2008/02/04 07:13 by 블루비 Total 1594 : Today 8 : Yesterday 0
자바스크립트 함수 중 alert 이라는 함수를 override 하여 system modal window 가 아닌 layer 디자인을 통해 alert window를 만들어 사용할 수 있습니다. (window.confirm 도 바꿀 수 있겠죠.. ㅎㅎ )


Sample Link

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> Override Alert </title>
</head>
<body>
<script type='text/javascript'>
/***
 * Description : override alert
 * Author : blueb(xblueb@gmail.com)
 * Date : 2008-02-04
 */
	window['alert'] = function(msg){

		if( document.getElementById("alert") == null ){
		
			var cw = parseInt(document.documentElement.clientWidth);
			var ch = parseInt(document.documentElement.clientHeight);

			var _top = ch/2 - 50;
			var _left = cw/2 - 150;

			 var div = document.createElement('div');
			 div.id = "alert";
			 div.style.width = "300px";
			 div.style.height = "100px";
			 div.style.border = "5px solid #000";
			 div.style.fontSize = "9pt";
			 div.style.zIndex = "100";
			 div.style.position = "absolute";
			 div.style.top = _top +"px";
			 div.style.left = _left +"px";
			 var layout = "
" + msg + "
"; layout += ""; div.innerHTML = layout; document.body.appendChild(div); }else{ var cw = parseInt(document.documentElement.clientWidth); var ch = parseInt(document.documentElement.clientHeight); var _top = ch/2 - 50; var _left = cw/2 - 150; var div = document.getElementById("alert"); div.style.top = _top +"px"; div.style.left = _left +"px"; document.getElementById("alert-msg").innerHTML = msg; document.getElementById("alert").style.display = ""; } }; </script> <a href="javascript:window.alert('Hello world')">click</a> <p> </p> </body> </html>

system alert 과 같은 형태의 효과를 내기 위해서는 몇가지 더 추가 되어야 할 사항들이 있습니다. alert window가 발생된 시점에 content의 모든 영역에 click을 방지 하기 위해 투명 layer로 차단해줘야 겠죠 그외에도 몇가지 더 추가 해야 할 거 같습니다.
2008/02/04 07:13 2008/02/04 07:13

TRACKBACK :: http://blueb.net/blog/trackback/1086

  1. azki 수정/삭제 답변 달기

    아이디어 괜찮은데요^^;;

    ps. 33,34 번째 라인의 " 가 중첩되어 에러가 나니 복사해 쓸때 조심해야될듯한 2008/02/04 09:45

    1. 블루비 수정/삭제

      확인해 보니 정말 그렇네요.. ㅎㅎ
      구문강조 스크립트로 인해서 코드가 변형이 되는 문제 인데 수정 해놨습니다.
      글 감사합니다. ^^ 2008/02/04 10:16

Leave a Comment
[로그인][오픈아이디란?]
1  ... 198 199 200 201 202 203 204 205 206  ... 775 

달력

«   2008/11   »
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30