관련된 문서를 인쇄하거나 인쇄 미리보기하기 바로 전에 개체에 발생한다.


이벤트 속성
object.onbeforeprint=handler JScript 만-
object.onbeforeprint=GetRef('handler') VBScript 5.0-
인라인 HTML <ELEMENT onbeforeprint="handler"> 모든 플랫트폼
명명된 스크립트 <SCRIPT for=object event=onbeforeprint> Explorer-
이벤트 특성
Bubbles 없음
취소 불가
발생 원인
  • 브라우저 메뉴에서 '인쇄'나 '인쇄미리보기'를 선택하였을 때.
  • CTRL+P를 눌렀을 때.
  • 문서 위에서 오른쪽 마우스를 클릭하여 '인쇄'를 선택하였을 때.
  • 연결 위에서 오른쪽 마우스를 클릭하여 '인쇄'를 선택하였을 때.
  • 윈도우 탐색기에서 웹 문서를 클릭하여 메뉴에서 '인쇄'를 선택하였을 때.
  • 윈도우 탐색기에서 웹 문서 위에서 오른쪽 마우스를 클릭하여 메뉴에서 '인쇄'를 선택하였을 때.
디폴트 작용 이벤트에서 지정한 개체와 연관된 문서를 인쇄한다.
HTML 규격 비규격 IE 확장.

DHTML 개체 모델에서 이벤트처리자는 파라메터들을 직접 받지는 못해도, event개체의 쿼리를 사용할 수 있다.

altKey ALT 키가 눌렸는가를 반환하거나 설정한다.
altLeft 왼쪽 ALT 키가 눌렸는가를 반환하거나 설정한다.
button 사용자에 의하여 눌려진 마우스 단추를 반환하거나 설정한다.
cancelBubble 현재 이벤트가 이벤트처리자들의 계통도에서 버블업(bubble up)하여야 하는가를 반환하거나 설정한다.
clientX 윈도우 장식과 스크롤바를 제외한 사용자 지역에 상대적 마우스포인터 수평 좌표를 반환하거나 설정한다.
clientY 윈도우 장식과 스크롤바를 제외한 사용자 지역에 상대적 마우스포인터 수직 좌표를 반환하거나 설정한다.
ctrlKey CTRL 키가 눌렸는가를 반환하거나 설정한다.
ctrlLeft 왼쪽 CTRL 키가 눌렸는가를 반환하거나 설정한다.
returnValue 이벤트로 부터의 반환값을 반환하거나 설정한다.
screenX 사용자 스크린에 상대적인 마우스포인터의 수평 위치를 반환하거나 설정한다.
screenY 사용자 스크린에 상대적인 마우스포인터의 수직 위치를 반환하거나 설정한다.
shiftKey SHIFT 키가 눌렸는가를 반환하거나 설정한다.
shiftLeft 왼쪽 SHIFT 키가 눌렸는가를 반환하거나 설정한다.
srcElement 이벤트를 발생시킨 개체를 반환하거나 설정한다.
type 이벤트 개체의 이벤트 명칭을 반환하거나 설정한다.
x 상대적으로 위치한 모체 개체에 상대적인 위치 수평 좌표를 반환하거나 설정한다.
y 상대적으로 위치한 모체 개체에 상대적인 위치 수직 좌표를 반환하거나 설정한다.
특기

이 이벤트는 일반적으로 onafterprint 이벤트와 병행하여 사용된다. onbeforeprint 이벤트를 사용하면 인쇄하기나 미리보기 바로 전에 문서의 내용에 변경을 줄 수 있다. onafterprint 이벤트를 사용하면 인쇄하기나 미리보기 바로 전에 문서의 내용에 변경한 것을 원래대로 되돌릴 수 있다.

적용
개체scriptHTMLIE


onbeforeprint, onafterprint 이벤트 예제

결과 표시창

인쇄하거나 미리보기를 해 보라.
문서의 all 엘레멘트들 점검하여 인쇄 바로 전에 class='event'를 'forPrint'로 변경한다.
인쇄 바로 후에 문서의 all 엘레멘트들 점검하여 원래대로 class='forPrint'를 'event'로 변경한다.

인쇄할 때 디스플레이하는 내용의 스타일과 다르다고 가정하여 인쇄시에만 해당 인쇄용 클라스를 적용하는 예제이다.

<SCRIPT>
var showStr='';
var allColl=document.all.tags('DIV');
function window.onbeforeprint(){
  showStr+='onbeforeprint : allColl.length='+allColl.length;
  showStr+='<TABLE border=1 width=100%><TR><TD width=50%><B>당초 상황</B><BR>';
  for (i=0;i<ALLCOLL.length;i++){
    allColl[i].boolPrint=false;
    if (allColl[i].className=='event'){
      showStr+=i+') '+allColl[i].nodeName+' class=';
      showStr+=allColl[i].className+',allColl[i].boolPrint='+allColl[i].boolPrint+'<BR>';
    }
  }
  showStr+='</TD>';
  showStr+='<TD width=50%><B>onbeforeprint 이벤트 후 상황</B><BR>';
  for (i=0;i<ALLCOLL.length;i++){
    if (allColl[i].className=='event'){
      allColl[i].className='forPrint';
      allColl[i].boolPrint=true;
      showStr+=i+') '+allColl[i].nodeName+' class='+allColl[i].className;
      showStr+=',allColl[i].boolPrint='+allColl[i].boolPrint+'<BR>';
    }
  }
  showStr+='</TD></TR></TABLE>';
  show.innerHTML=showStr;
}

function window.onafterprint(){
  showStr+='onafterprint : <TABLE border=1 width=100%><TR><TD width=50%><B>당초 상황</B><BR>';
  for (i=0;i< allColl.length;i++){
    if (allColl[i].className=='forPrint'){
      showStr+=i+') '+allColl[i].nodeName+' class='+allColl[i].className;
      showStr+=',allColl[i].boolPrint='+allColl[i].boolPrint+'<BR>';
    }
  }
  showStr+='</TD>';
  showStr+='<TD width=50%><B>onafterprint 이벤트 후 상황</B><BR>';
  for (i=0;i<ALLCOLL.length;i++){
    if (allColl[i].className=='forPrint'){
      allColl[i].boolPrint=false;
      allColl[i].className='event';
      showStr+=i+') '+allColl[i].nodeName+' class='+allColl[i].className;
      showStr+=',allColl[i].boolPrint='+allColl[i].boolPrint+'<BR>';
    }
  }
  showStr+='</TD></TR></TABLE>';
  show.innerHTML=showStr;
}
</SCRIPT>
<DIV id=show>결과 표시창</DIV>