프로젝트는 화면 캡처, 복사 및 인쇄를 금지해야 합니다. 인터넷에는 다양한 스크립트가 있습니다. 하지만 화면 캡처를 비활성화하는 방법은 무엇입니까? PrintScreen은 특수 키이고 keyCode가 없는 키이므로 onkeydown은 쓸모가 없습니다. 하지만 다르게 생각하는 것이 더 나을 것입니다. 우리는 페이스트 보드에서 시작하여 곡선 절약 전략을 채택합니다. 코드는 다음과 같습니다.
위 코드는 100밀리초마다 대지를 지웁니다. 페이지가 로드되면 스크립트가 자동으로 실행되기 시작합니다. 하지만 여기에는 단점이 있습니다. 웹 페이지가 최소화되었는지 여부에 관계없이 이 창이 열려 있는 동안에는 컴퓨터의 모든 복사 작업을 수행할 수 없습니다(스크립트가 계속해서 임시 보드를 지웁니다). 기대한 효과는 달성되었으나 다소 불만족스럽습니다 :(.
우리는 모든 컨트롤에 onfocus 및 onblur 이벤트가 있으며 창 창도 예외는 아니라는 것을 알고 있습니다. 이 두 이벤트를 사용하여 현재 창이 활성화되어 있으면 실행을 중지합니다. 코드는 다음과 같습니다.
이 방법으로 이 문제를 완벽하게 해결할 수 있지만 스크린샷 내용을 페이스트보드에 넣지 않는 스크린샷 프로그램에는 여전히 이 방법이 부족합니다.
최근 테스트에서는 onfocus 및 onblur 이벤트를 사용하는 방법이 만족스럽지 않은 것으로 나타났습니다. 포커스가 프로그램 페이지의 다른 컨트롤(테이블 포함)을 가리키면 창이 포커스를 잃고 onblur 이벤트가 중지됩니다. onfocus 및 onblur에 대한 이벤트를 바인딩하려면 모든 컨트롤을 순회해야 합니까?
또한 window.onfocus는 문서의 초점만 맞춥니다. onfocus도 유효하지 않습니다. 저는 반나절 동안 JS를 공부한 경험을 기록하는 데에만 이 텍스트를 사용합니다.
인쇄를 비활성화하려면 다음 스타일 코드를 프로그램에 입력하면 됩니다(인쇄된 페이지 내용은 공백이 됩니다). ):
복사, 선택, 우클릭 메뉴 금지:
<script> <BR>window.setInterval("clipboardData.setData('text','')",100); <BR></script><script> <BR>var interval <BR>window.onfocus=function(){interval=window.setInterval("clipboardData.setData('text','')",100);} <BR>window.onblur=function(){window.clearInterval(interval);} <BR> </script> 위 코드는 IE6.0 환경에서 정상적으로 실행됩니다. <script> <BR>function click() { <BR>return false;} <BR>function click1(){if (event.button==2) {return false; }} <BR>function CtrlKeyDown(){ <BR> if (event.keyCode==67&&event.ctrlKey) <BR> { <BR> clipboardData.setData('text',''); <BR> return false; <BR> } <BR>} <BR>document.onkeydown=CtrlKeyDown; <BR>document.onselectstart=click; <BR>document.onmousedown=click1; <BR></script>