JavaScript로 만든 달력(popup 객체사용)

31355 
Created at 2006-10-10 06:23:09 
176   0   0   0  
/* @charset=euc-kr */
/******************************************************************************
* Description :
* input=text object에 대한 Data Picker Script
* HTC로 개발하였으나, 잦은 IE 충돌로 인하여 변형함.
* IE 5.5 이상에서 테스트
* 사용법 : <input type="text" name="textbox" value="2006-01-01" isEmpty="true"  empty="날짜없음"
* arrowImage="/images/ico_dtp_def.gif" prevImage="/images/ico_arrow_left_gray.gif" nextImage="/images/ico_arrow_right_gray.gif">
* 해결 문제 : 해당객체의 disabled = true일때 이벤트 훅킹이 어려움, 이벤트에 따른 색상 교체 소스 최적화 -_-;;
* ** 
* Last update : 2006.
* Copyright (c) 2006, By Lee N.THU
* e-Mail : <support@x-wiz.com>
* - 사람이면 맘대로 쓸 수 있는 데, 단 제작자 표기는 해주삼.
* PS : 달력 선택 시 SELECT BOX 또는 팝업창 형태인것이 불편해 4시간 동안 고민해서 제작 -.-, 년도 선택부분 시간관계상 생략
******************************************************************************/
var xwzDatePicker = function(objTextbox){
    if(window.__xwzDatePickers == null) window.__xwzDatePickers = new Array(0);
    this.index = window.__xwzDatePickers.length;
    window.__xwzDatePickers[this.index] = this;

    this.oText = objTextbox;
    this.dtCurrent = null;//입력된 날짜
    this.dtDisplay = new Date();//출력용 날짜
    this.objField =null;// 디스플레이 테이블
    this.objLabel = null;// 날짜 출력될 셀
    this.objArrow = null;// 화살표 셀
    this.imgArrow = null;// 화살표 이미지
    this.objSelectBox = null;// focus에 대한 효과를 주기 위한 SELECT BOX -> 레이어보다는 상위 객체이므로
    this.isEmpty = false;// 날짜 없음 을 출력할지 여부
    this.emptyValue = "";// 날짜 없음 표기 값
    this.isVisible = false;// 팝업창 보임 여부
    this.isActive = false;// 활성화되었는지 여부
    this.Images = {arrow : "", prev : "", next : ""};//디스플레이에서 화살표 이미지,  달력에서 이전, 다음 이미지
    this.Week = new Array(0);// 주 표기 텍스트 배열
    this.Formula = new Array(0);//날짜 포멧 형태
    this.WeekColor = ['#CC0000', '', '', '', '', '','#0066CC'];//일별 색상
    this.Styles = {def:new Array(0), hov:new Array(0), act:new Array(0), flt:new Array(0)}// 기본, 마우스 오버, 활성화 되었을 때 색상 설정, 활성화, 오버 되었을 때 오른쪽 화살표 필터효과 색상

    this.objWindow = null;//팝업창 객체
    this.lblCaption = null;// 달력에서 월, 년 표기 레이어
    this.lblEmpty = null;// 달력에서 날짜 없음 출력 객체
    this.cellCalendar = null;//달력의 각 셀을 배열로 저장

    this.setLanguage("ko");//기본 날짜 출력 포멧을 한글
    //기본 색상 설정
    this.setStyleColor("default:#ABC1DE,#EAF2FB,#740048;Hover:#ABC1DE,#FFFFFF,#740048;Active:#ABC1DE,#AEC4E8,#500040;filter:#E0D4B2,#FFD456,#E0D4B2,#FFD456");

    this.Initializ();//초기화
    this.oText.DatePick = this;//대상 텍스트 박스의 객체 속성으로 현재 function으로 지정
    //텍스트 박스의 프로퍼티가 변경될 때 분기함수
    this.oText.onpropertychange=function(){if(window.event.type == "propertychange" && this.DatePick !=null) this.DatePick.__setPropertyAttribute(window.event.propertyName);}
}
xwzDatePicker.prototype.Version            = '1.0.1' ;
/*=========================================================
날짜없음 출력여부 및 날짜없음 표시 문자 설정
=========================================================*/
xwzDatePicker.prototype.letDisplayEmpty = function(bool){this.isEmpty=eval(bool);if(this.lblEmpty!=null) this.lblEmpty.style.display = this.isEmpty ? '' : 'none'; }
xwzDatePicker.prototype.letEmptyValue = function(str){this.emptyValue=str;}
/*=========================================================
이미지 셋팅
=========================================================*/
xwzDatePicker.prototype.setArrowImageValue = function(str){this.Images.arrow = str;}
xwzDatePicker.prototype.setPrevImageValue = function(str){this.Images.prev = str;}
xwzDatePicker.prototype.setNextImageValue = function(str){this.Images.next = str;}
xwzDatePicker.prototype.letDisabled = function(bool){
    if(bool == true){
        this.objLabel.style.color="#666666";
        this.objLabel.style.filter="gray()";
        this.objArrow.style.filter="gray()";
    }else{
        this.objLabel.style.color="";
        this.objLabel.style.filter="";
        this.objArrow.style.filter="";
    }
}
/*=========================================================
주 표시 단위
=========================================================*/
xwzDatePicker.prototype.setLanguage = function(str){
    var WeekText = {"ch": ['日','月','火','水','木','金','土'],"ko" : ['일','월','화','수','목','금','토'],"en" : ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']};
    var DateText = {"ch": ['月 ','日','年 '],"ko" : ['월 ','일', '년 '],"en" : ['-', '', '-']};
    if(WeekText[str] != null) this.Weeks = WeekText[str];else this.Weeks = WeekText["ko"];
    if(DateText[str] != null) this.Formula = DateText[str];else this.Formula = DateText["ko"];
}

/*=========================================================
마우스 오버등의 이벤트에 따른 색상 설정 함수
=========================================================*/
xwzDatePicker.prototype.setStyleColor = function(str){
    var Composition = new Array(0), Rule = new Array(0), sSelector = "", Colors = new Array(0);
    Composition = str.replace(/s/gi, '').toString().split(";")
    if(Composition.length == 0) return;
    for(var i = 0 ; i < Composition.length; i++){
        Composition[i] = Composition[i].replace(/s/gi, '');//무효문자 제거
        if(Composition[i] == '') continue;sSelector = Composition[i].split(':').shift();Colors = Composition[i].split(':').pop().toString().split(',');
        if(sSelector.toLowerCase() == 'default'){for(var n = 0; n < Colors.length;n++) this.Styles.def[n] = Colors[n];}
        else if(sSelector.toLowerCase() == 'hover'){for(var n = 0; n < Colors.length;n++) this.Styles.hov[n] = Colors[n];}
        else if(sSelector.toLowerCase() == 'active'){for(var n = 0; n < Colors.length;n++) this.Styles.act[n] = Colors[n];}
        else if(sSelector.toLowerCase() == 'filter'){for(var n = 0; n < Colors.length;n++) this.Styles.flt[n] = Colors[n];}
    }
}

/*=========================================================
값 변경에 따른 셋팅
=========================================================*/
xwzDatePicker.prototype.changeValue = function(sValue){
    if( (/^([0-9]){4}-([0-9]){2}-([0-9]){2}/).test(sValue) == true){
        this.dtCurrent = new Date(sValue.substr(0,4), sValue.substr(5,2)-1, sValue.substr(8,2));
        this.dtDisplay=this.dtCurrent;
        this.setDateValue(this.dtCurrent.getDate());
        this.display();//==재출력 시 자세히 보면 느려짐 re-drow 때문인듯 싶음. 해결하기 귀찬음, 일반사용자들 모름
    }else{
        this.setEmptyValue();
    }
}
xwzDatePicker.prototype.setEmptyValue = function(){
    this.oText.onpropertychange=new Function("return false");
    this.oText.value = "";
    this.objLabel.innerHTML = this.emptyValue;
    this.isVisible = true;
    this.swapVisible();
    this.oText.onpropertychange=function(){if(window.event.type=="propertychange"&&this.DatePick!=null) this.DatePick.__setPropertyAttribute(window.event.propertyName);}
}
/*=========================================================
선택된 날짜에 대한 출력
=========================================================*/
xwzDatePicker.prototype.setDateValue = function(day){

    this.oText.onpropertychange=new Function("return false");

    var year = this.dtDisplay.getYear(), month = this.dtDisplay.getMonth();
    this.dtCurrent = new Date(year, month, day);
    this.oText.value = year + "-" + this.__fillZero(month+1, 2) + "-" +  this.__fillZero(day, 2);
    this.objLabel.innerHTML = year + this.Formula[2] + this.__fillZero(month+1, 2) + this.Formula[0] +  this.__fillZero(day, 2) +this.Formula[1] ;
    this.isVisible = true;
    this.swapVisible();
    this.oText.onpropertychange=function(){if(window.event.type == "propertychange" && this.DatePick !=null) this.DatePick.__setPropertyAttribute(window.event.propertyName);}
}
/*=========================================================
프로퍼티 설정 -- 속성값이 변경될때
=========================================================*/
xwzDatePicker.prototype.__setPropertyAttribute = function(sType){
    switch(sType.toString()){
        case "isEmpty" : this.letDisplayEmpty(this.oText.getAttribute(sType));break;
        case "empty" : this.letEmptyValue(this.oText.getAttribute(sType));break;
        case "value" : this.changeValue(this.oText.getAttribute(sType));break;
        case "arrowImage" : this.setArrowImageValue(this.oText.getAttribute(sType));break;
        case "prevImage" : this.setPrevImageValue(this.oText.getAttribute(sType));break;
        case "nextImage" : this.setNextImageValue(this.oText.getAttribute(sType));break;
        case "colorStyle" : this.setStyleColor(this.oText.getAttribute(sType));break;
        case "language" : this.setLanguage(this.oText.getAttribute(sType));break;
        case "disabled" : this.letDisabled(this.oText.disabled);break;
        default : break;
    }
}
xwzDatePicker.prototype.__isPopupView = function(){{if(this.objWindow == null) return false;return this.objWindow.isOpen;}}
xwzDatePicker.prototype.__fillZero = function(num, len){if(num.toString().length >= len) return num;var nMax = len-( num.toString().length );var str = "";for(var i=0; i < nMax; i++) str +="0";return str + (num).toString();}
/*=========================================================
마우스 이벤트에 따른 효과 - 최적화 필요 -.-;; 귀찮아서 안하고 있음
=========================================================*/
xwzDatePicker.prototype.hoverIn = function(){
    if(this.isActive == false && this.oText.disabled == false){
        this.objField.style.border=this.Styles.hov[0] + " 1px solid" ;
        this.objField.style.backgroundColor=this.Styles.hov[1] ;

        this.objLabel.style.border=this.Styles.hov[1] + " 1px solid";
        this.objLabel.style.backgroundColor=this.Styles.hov[1] ;
        this.objLabel.style.color=this.Styles.hov[2];

        this.objArrow.style.border=this.Styles.hov[0] + " 1px solid";
        this.objArrow.style.backgroundColor=this.Styles.hov[1] ;
        this.objArrow.style.color=this.Styles.hov[1];
        this.objArrow.style.filter="progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr="+this.Styles.flt[0]+",endColorStr="+this.Styles.flt[1]+");";
    }
}
xwzDatePicker.prototype.hoverOut = function(){
    if(this.isActive == false && this.oText.disabled == false){
        this.objField.style.border=this.Styles.def[0] + " 1px solid" ;
        this.objField.style.backgroundColor=this.Styles.def[1] ;

        this.objLabel.style.border=this.Styles.def[1] + " 1px solid";
        this.objLabel.style.backgroundColor=this.Styles.def[1] ;
        this.objLabel.style.color=this.Styles.def[2];

        this.objArrow.style.border=this.Styles.def[1] + " 1px solid";
        this.objArrow.style.backgroundColor=this.Styles.def[1] ;
        this.objArrow.style.color=this.Styles.def[1];
        this.objArrow.style.filter="";
    }
}

xwzDatePicker.prototype.deactive = function(){
    if(this.oText.disabled == false){
        this.isActive = false;
        this.objField.style.border=this.Styles.def[0] + " 1px solid" ;
        this.objField.style.backgroundColor=this.Styles.def[1] ;

        this.objLabel.style.border=this.Styles.def[1] + " 1px solid";
        this.objLabel.style.backgroundColor=this.Styles.def[1] ;
        this.objLabel.style.color=this.Styles.def[2];

        this.objArrow.style.border=this.Styles.def[1] + " 1px solid";
        this.objArrow.style.backgroundColor=this.Styles.def[1] ;
        this.objArrow.style.color=this.Styles.def[1];
        this.objArrow.style.filter="";
    }
}
xwzDatePicker.prototype.active = function(){
    if(this.oText.disabled == false){
        this.isActive = true;
        this.objField.style.border=this.Styles.act[0] + " 1px solid" ;
        this.objField.style.backgroundColor=this.Styles.hov[1] ;

        this.objLabel.style.border=this.Styles.act[1] + " 1px solid";
        this.objLabel.style.backgroundColor=this.Styles.act[1] ;
        this.objLabel.style.color=this.Styles.act[2];

        this.objArrow.style.border=this.Styles.act[0] + " 1px solid";
        this.objArrow.style.backgroundColor=this.Styles.act[1] ;
        this.objArrow.style.color=this.Styles.act[1];
        this.objArrow.style.filter="progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr="+this.Styles.flt[2]+",endColorStr="+this.Styles.flt[3]+");";
    }
}
/* ================================================
팝업창 출력 결정
================================================ */
xwzDatePicker.prototype.swapVisible = function(){

    if(this.isVisible == false){
        if(this.oText.disabled == false && this.objWindow != null){
            var nHeight = 164;
            if(this.isEmpty == true) nHeight =183;
            var nDiff = window.screen.height - window.event.screenY - nHeight;posY = nDiff < nHeight ?  nHeight *-1 : this.objField.offsetHeight;
            this.objWindow.show(0, posY, 139, nHeight, this.objField);
            this.objWindow.document.getElementById('IDS_MONTH_LIST').style.display = "none";
            this.active();
            this.isVisible = true;
        }
    }else{
        this.deactive();
        if(this.__isPopupView()==true) this.objWindow.hide();
        this.objSelectBox.focus();
        this.isVisible = false;
        setTimeout("window.__xwzDatePickers[" +this.index + "].display()", 30);
    }
}
/* ================================================
초기화 함수
insertRow(index) <= 요게 편한데 -.- 파이어폭스에서도 지원
================================================ */
xwzDatePicker.prototype.Initializ = function(){
    var bwver = new Number(((window.navigator.appVersion.split('; '))[1].split(' '))[1]);
    if(window.navigator.appName != "Microsoft Internet Explorer" || bwver < 5.5) return;
    //== 기본변수대입
    var sValue=this.oText.getAttribute("value");
    if(sValue != "" && sValue != null) this.dtCurrent = new Date(sValue.substr(0,4), sValue.substr(5,2)-1, sValue.substr(8,2));
    if(isNaN(this.dtCurrent) || this.dtCurrent == null){this.oText.value="";this.dtCurrent=new Date();}
    this.dtDisplay=this.dtCurrent;
    var attributes = ["isEmpty","empty", "arrowImage", "prevImage","nextImage", "colorStyle", "language"];
    for(var i = 0; i < attributes.length; i++){
        if(this.oText.getAttribute(attributes[i]) == null || this.oText.getAttribute(attributes[i]) =="" ) continue;
        this.__setPropertyAttribute(attributes[i]);
    }

    var row = null;
    //=== 테이블 생성
    this.objField = document.createElement("TABLE");
    this.objField.setAttribute('cellPadding', 1);
    this.objField.setAttribute('cellSpacing', 1);
    this.objField.style.display='inline' ;
    this.objField.style.verticalAlign = "bottom";
    this.objField.style.margin="0 0 0 0";
    this.objField.style.padding="0 0 0 0";
     this.objField.style.border=this.Styles.def[0] + " 1px solid" ;
    this.objField.style.backgroundColor=this.Styles.def[1];

    this.objField.onmouseover=new Function("window.__xwzDatePickers[" +this.index + "].hoverIn()");
    this.objField.onmouseout=new Function("window.__xwzDatePickers[" + this.index+ "].hoverOut()");

    //=== Row 생성
    var tBody = document.createElement("TBODY");
    this.objField.appendChild(tBody);

    row = document.createElement("TR");
    row.style.cssText = "";
    row.onmousedown=new Function("window.__xwzDatePickers[" +this.index + "].swapVisible()");

    //=== 디스플레이 cell 생성
    this.objLabel = document.createElement("TD");
    this.objLabel.onselectstart=new Function("return false");
    this.objLabel.setAttribute("vAlign", "absmiddle");
    if(this.oText.value == ""){
        this.objLabel.setAttribute("innerText", this.emptyValue);
    }else{
        this.objLabel.innerHTML = this.dtDisplay.getYear() + this.Formula[2] + this.__fillZero(this.dtDisplay.getMonth()+1, 2) + this.Formula[0] +  this.__fillZero(this.dtDisplay.getDate(), 2) + this.Formula[1];
    }
    this.objLabel.style.cssText = "";
    this.objLabel.style.width=116;
    this.objLabel.style.height=19;
    this.objLabel.style.font="normal normal normal 8pt 돋음";
    this.objLabel.style.cursor="default";
    this.objLabel.style.textAlign="center";
    this.objLabel.style.verticalAlign="text-bottom";
    this.objLabel.style.margin="0 0 0 0";
    this.objLabel.style.padding="0 0 0 0";

    this.objLabel.style.border=this.Styles.def[1] + " 1px solid";
    this.objLabel.style.backgroundColor=this.Styles.def[1] ;
    this.objLabel.style.color=this.Styles.def[2];
    row.appendChild(this.objLabel);

    //=== 화살표 생성
    this.imgArrow=document.createElement("IMG");
    this.imgArrow.src = this.Images.arrow;
    this.imgArrow.valign = "bottom";
    this.imgArrow.style.cssText = "";
    this.objSelectBox = document.createElement("SELECT");
    this.objSelectBox.style.cssText="border:0;margin:0;padding:0;width:0;font: 1pt";
    this.objSelectBox.onfocus=new Function("window.__xwzDatePickers[" +this.index + "].active()");
    this.objSelectBox.onblur=new Function("window.__xwzDatePickers[" +this.index + "].deactive()");

    this.objArrow= document.createElement("TD");
    this.objArrow.onselectstart=new Function("return false");
    this.objArrow.style.margin="0 0 0 0";
    this.objArrow.style.padding="0 3 0 3";
    this.objArrow.style.border=this.Styles.def[1] + " 1px solid";
    this.objArrow.style.backgroundColor=this.Styles.def[1] ;
    this.objArrow.style.color=this.Styles.def[1];
    this.objArrow.appendChild(this.imgArrow);
    this.objArrow.appendChild(this.objSelectBox);
    this.objSelectBox.options[0] = new Option('xwz','xwz')
    row.appendChild(this.objArrow);
    tBody.appendChild(row);
    this.oText.insertAdjacentElement("afterEnd", this.objField);
    
    if(this.oText.disabled == true) this.__setPropertyAttribute('disabled');

    this.oText.style.width='0px';this.oText.style.visibility='hidden';
    this.createWindow();
    this.InitializCalendar();
    this.

Tags: JavaScript 달력 Share on Facebook Share on X

◀ PREVIOUS
AJAX 컨트롤 많이 있겠지만, Form 메소드 형태로
▶ NEXT
이미지를 지정된 비율로 자르기 (crop)
  댓글 0
로그인을 하시면 댓글을 등록 할 수 있습니다.
SIMILAR POSTS

AJAX 컨트롤 많이 있겠지만, Form 메소드 형태로 (created at 2006-10-10)

window 스스로 닫기 (created at 2006-10-10)

구글 메일(GMail)로 메일 발송하기 (created at 2006-10-10)

ATL/ActiveX 에서 자바스크립트로 데이터(문자열) 보내기 (created at 2006-09-29)

초간단 AJAX 샘플 (created at 2006-11-22)

쿠키 세팅하기 (created at 2006-11-22)

금액을 입력할때 세자리마다 컴마찍기 (created at 2006-11-24)

프린팅 하기(IE 전용) (created at 2006-12-22)

수많은 체크박스 중 몇개 체크했는지 확인 (created at 2006-12-22)

스크립트 디버거 (created at 2006-12-22)

현재달의 첫째날 , 마지막날 (날짜,일자) 구하기 (created at 2006-12-22)

자바스크립트로 만든 빙고 게임 (created at 2006-12-22)

기념일계산,날짜계산해서....^^; 앤에게 사랑받으시길..... (created at 2006-12-22)

누름버튼에 시간이 표시되고 클릭하면 창이 닫힙니다 (created at 2007-01-28)

접속하여 경과한 시간이 상태바에 표시됩니다. (created at 2007-01-28)

오늘의 년도,월,일,시,분 을 표시 (created at 2007-01-28)

출생 날짜를 입력하면 무슨 요일인지 표시 (created at 2007-01-28)

간단한 소스로 브라우즈 따운시키기 (created at 2007-01-28)

이미지를 서치라이트로 비추는 효과 (created at 2007-01-28)

랜덤 이미지 로딩시키기 (created at 2007-01-28)

이미지의 다운로드를 막아주는 스크립트 (created at 2007-01-28)

큰 이미지를 화면크기에 맞게 자동으로 사이즈 조절 (created at 2007-01-28)

스크롤바에 붙어다니는 이미지 (created at 2007-01-28)

이미지가 많아서 로딩할때 시간이 많이걸릴 경우 (created at 2007-01-28)

마우스 커서 모양바꾸기 (created at 2007-01-28)

OTHER POSTS IN THE SAME CATEGORY

금액을 입력할때 세자리마다 컴마찍기 (created at 2006-11-24)

쿠키 세팅하기 (created at 2006-11-22)

초간단 AJAX 샘플 (created at 2006-11-22)

Hello World 뿌리기 (created at 2006-11-18)

텍스트 인쇄하기 (created at 2006-11-17)

Region을 이용한 부정형 윈도 만들기 (created at 2006-11-16)

유동 IP로 DNS 매핑하여 서비스 하는 방법 (created at 2006-10-14)

MS IE7.0 가세「툴바 전쟁」혈투 예고 (created at 2006-10-14)

어떤 프로세스가 메모리를 가장 많이 차지하는지 알아보는 방법? (created at 2006-10-13)

어떤 디렉토리가 가장 큰지 알아내는 방법? (created at 2006-10-13)

root password 까먹었을때? (created at 2006-10-13)

지정날짜에 이미지 보여주기 혹은 감추기 (created at 2006-10-10)

구글 메일(GMail)로 메일 발송하기 (created at 2006-10-10)

window 스스로 닫기 (created at 2006-10-10)

이미지를 지정된 비율로 자르기 (crop) (created at 2006-10-10)

AJAX 컨트롤 많이 있겠지만, Form 메소드 형태로 (created at 2006-10-10)

모니터 끄는 API (created at 2006-09-29)

telnet 접속이 내부는 되는데 외부는 안되는 경우 (created at 2006-09-29)

포트 변경하는 법 (created at 2006-09-29)

가상 호스트(Virtaul Host)를 꾸미려면... (created at 2006-09-29)

PHP3를 사용하려면 (created at 2006-09-29)

pop3 제대로 되는지 테스트 하는 방법 (created at 2006-09-29)

메일서버 세팅하기 (created at 2006-09-29)

개인 계정에 대한 쿼터 설정 방법 (created at 2006-09-29)

메일을 보내면 릴레이를 거부하는데? (created at 2006-09-29)

apache+php에 oracle연동하기 (created at 2006-09-29)

firewall setting / host deny (created at 2006-09-29)

OpenSSL Example PHP Code - VerifySignature (created at 2006-09-29)

OpenSSL Installation - Ref. 2 (created at 2006-09-29)

OpenSSL Installation with PHP, Apache, ... (created at 2006-09-29)

UPDATES

일제강점기가 더 살기 좋았을지도 모른다는 조수연 국민의힘 후보 - 친일파? (updated at 2024-03-14)

성일종 인재육성 강조하며 이토 히로부미 언급 - 인재 키운 선례? (updated at 2024-03-13)

경제는 대통령이 살리는 것이 아닙니다 라던 윤석열대통령 - 상황 안좋아지자 여러 전략을 펼쳤지만, 부작용 속출했던 2024년의 봄 (updated at 2024-03-13)

극빈의 생활을 하고 배운것이 없는 사람은 자유가 뭔지도 모를 뿐 아니라 왜 개인에게 필요한지에 대한 필요성을 못느낀다는 윤석열 대통령 (updated at 2024-03-08)

조선일보를 안본다는 사람들이 말하는 그 이유 - 천황폐하, 전두환 각하, 김일성 장군 만세? (created at 2024-03-07)

광폭타이어를 장착하면 성능이 좋아질거라는 착각 (updated at 2024-03-03)

면허시험장에서 면허갱신하면 하루만에 끝나나? (updated at 2024-03-03)

신한은행/신한투자증권 금융거래 종합보고서 다운로드 방법 (updated at 2024-02-26)

100년 된 일본 장난감 회사가 내놓은 변신 기술에 난리난 과학계 (created at 2024-02-26)

알리에서 발견한 한글 지원하는 가성비 쩌는 무선 기계식키보드 (updated at 2024-02-25)

쌍팔년도가 1988년인줄 알았던 1인 (updated at 2024-02-23)

이쁜 색으로 변신한 테슬라 사이버트럭 (created at 2024-02-23)

2024년 카타르 아시안컵 4강전 전날 한국 대표팀 내부에 있었던 이강인의 폭주 (updated at 2024-02-21)

강릉 맛집 지도 (updated at 2024-02-20)

간이 안좋을 때 나타나는 증상 20가지 (updated at 2024-02-20)

배설물을 이용하여 일본에 저항했던 독립운동가 조명하 (updated at 2024-02-20)

요건 몰랐지롱? 이순신을 사랑한 외국인 (created at 2024-02-20)

원빈도 머리빨 (created at 2024-02-19)

대표적인 대한민국의 미남배우 중 하나인 원빈 (created at 2024-02-19)

백제의 건국 시조 온조왕 (updated at 2024-02-19)

700년동안 대한민국 고대국가의 한축이었던 백제시대 (created at 2024-02-19)

대머리들에게 주는 대머리의 조언 (created at 2024-02-17)

일본의 여성 락그룹 프린세스 프린세스의 "다이아몬드" (created at 2024-02-17)

결혼식 직전 연락두절된 신랑 (created at 2024-02-17)

대한민국 축구팀 파문으로 인해 중국 소셜미디어까지 등장한 탁구 전도사 이강인 (updated at 2024-02-16)

조국의 반격으로 흥미진진하게 흘러가는 한국의 정치판 - 데뷰와 동시에 한동훈 장관에게 던진 4개의 질문 (updated at 2024-02-15)

2024년 카타르 아시안컵 4강전 전날 내분사태로 갑자기 회자되는 이승우선수의 친화력 (created at 2024-02-15)

카카오뱅크 금융거래종합보고서/잔액증명서/거래내역서 발급 방법 (created at 2024-02-14)

아이가 최고의 스승이었다 (created at 2024-02-13)

이제는 국민 유행어로 등극한 한동훈의 "싫으면 시집가" (updated at 2024-02-13)

설 연휴 잔소리 메뉴판 - 이제 잔소리 하기전에 요금부터... (updated at 2024-02-10)

로버트 드니로의 70년 전 모습 (created at 2024-02-08)

카메라 어플로 만들어본 슈퍼걸 - 엄... 최종 작품은 왠지... (created at 2024-02-08)

앞트임 하고 새롭게 태어난 대한민국의 젊은 용사 (created at 2024-02-08)

비가 억수로 내리던 2024년의 2월 어느날 캘리포니아의 밤 카니예 웨스트와 그의 아나 비앙카 센소리 (updated at 2024-02-08)

스케방형사 1화 - 수수께끼의 전학소녀사키 (created at 2024-02-05)

백제와 일본의 교류가 가장 활발했던 시기는 근초고왕 시대 (created at 2024-02-05)

일에 찌들은 아빠가 꿈에서 깨어나지 않자 구출해주는 짱구 (created at 2024-02-03)

이제는 할아버지가 된 휴 그랜트(Hugh Grant)가 블랙핑크 콘서트에 다녀온 후 소감 (created at 2024-02-03)

다시 한번 감상해보는 추억의 날리면 패러디 (updated at 2024-02-01)

25년간 노예로 살다가 돌아온 남동생 (created at 2024-02-01)

가까우면서도 멀게 느껴지는 나라 일본 (created at 2024-02-01)

친구와 비교하다가 이혼하게 된 부부 (created at 2024-02-01)

요꼬 미나미노의 바람의 마도리걸(風のマドリガル) (created at 2024-01-30)

옛날 어린이들이 신문을 챙겨봤던 이유 (created at 2024-01-30)

Remaster된 요꼬 미나미노(南野陽子)의 판도라의 연인(パンドラの恋人) (updated at 2024-01-30)

88올림픽때 발매되었던 요꼬 미나미노(南野陽子)의 Hello! Good Morning (updated at 2024-01-30)

요꼬 미나미노(南野陽子) - さよならのめまい 뮤직비디오 (created at 2024-01-30)

배달음식에 소변테러 (created at 2024-01-30)

음식물쓰레기 옮기려다 대참사 (updated at 2024-01-30)