게시판 본문 ASP, ASP.NET, IIS & Script - Read Only

re: 안녕하세요~~~ 창복사(ctrl+n) 에 대한 질문이데요 ^^
작성자: 송원석
작성일시: 2004-11-01 21:46,  조회수: 2,866
말씀하신 내용중에서 일부는 제가 방법을 알고 있습니다만 일부는 저도 방법을 모르고 있습니다. 한 가지씩 말씀을 드려보도록 하겠습니다. ^_^

먼저 event 개체에 대해서 더 자세하게 알고 싶으시다면 다음의 문서를 참고하시기 바랍니다. 지금부터 제가 말씀드리는 내용들은 모두 이 문서에 기반을 두고 있습니다.

event Object

첫 번째로 컨트롤 키가 물렸는지 여부를 아시고 싶다면 ctrlKey 프로퍼티를 사용하시면 됩니다. 만약 이벤트가 발생한 시점에 컨트롤 키가 눌려져 있다면 ctrlKey 프로퍼티가 true 로 설정됩니다. 비단 컨트롤 키뿐만 아니라 기타 다른 키들도 같은 요령으로 파악하실 수 있습니다. 예를 들어서 altKey 프로퍼티라든가 shiftKey 프로퍼티 등을 사용하면 각각 해당하는 키의 현재 상태를 아실 수 있습니다.

재미있는 것은 각각 키들의 좌측 키 입력 여부를 나타내는 altLeft 프로퍼티나 ctrlLeft 프로퍼티, 그리고 shiftLeft 프로퍼티와 같은 프로퍼티들은 제공되는데 반해서 오른쪽 키가 눌렸는지를 의미하는 altRight 프로퍼티 같은 프로퍼티들은 전혀 제공되지 않는다는 것입니다. 왜냐하면 예를 들어서 altKey 프로퍼티와 altLeft 프로퍼티를 조합하면 오른쪽 키의 입력 여부를 쉽게 알 수 있기 때문이겠죠. ^_^

그리고 안타깝지만 새 창을 여는 것을 막으려면 자바스크립트만으로는 불가능하다고 알고 있습니다. 인터넷 익스플로러의 이벤트를 후킹해야만 원하시는 결과를 얻으실 수 있을 것입니다. 재미있게도 말씀하신 것처럼 alert() 을 한 번 호출하면 새 창이 뜨는 것이 중단되긴 합니다만 아마도 원하시는 결과는 그런 것이 아니시리라고 생각되네요. ^_^;;

참고로 그 외에 붙여넣기를 막거나 하는 등의 작업은 가능합니다. 예를 들어서 다음의 코드는 Ctrl+v 를 막아버립니다. 적당한 INPUT 태그에서 onKeyDown 이벤트에 이 함수를 설정하시면 해당 INPUT 태그에서는 키보드를 사용한 붙여넣기가 막혀버립니다.
function checkKeys()
{
    if (event.ctrlKey)
        if (event.keyCode == 86)
            event.returnValue = false;
}
이 작업이 가능한 가장 큰 이유는 returnValue 프로퍼티가 존재하기 때문입니다. 코드에서 보시는 것처럼 이 프로퍼티에 false 를 설정하시면 입력 받은 문자가 무시되어버립니다. 따라서 이 프로퍼티를 잘 이용하시면 특정 INPUT 태그에서 숫자만 입력받게 제한한다던가 거꾸로 문자만 입력받게 제한하시는 등의 작업을 쉽게 구현하실 수 있습니다. ^_^

감사합니다.
IP 주소: 211.195.187.80
전체 1 건의 댓글이 존재합니다.

오마르

오~~ 넘 좋은거 알았네요~ 고맙습니다~~~~ 어제 자면서 궁금한게 또 생겼는데 음~~ 이따 다시 올께여~~ ^^=
2004-11-02 09:50
전체 2,095 건의 게시물, 84 페이지로 구성된 ASP, ASP.NET, IIS & Script 게시판의 53 페이지입니다.
게시물
822

추가 질문입니다...

구나구나

2004-11-16 4,560
821

re: 추가 질문입니다...

송원석

2004-11-16 2,729
820

정말 감사드리구요,, 한가지만 더요...

구나구나

2004-11-16 2,569
819

re: 정말 감사드리구요,, 한가지만 더요... [1]

송원석

2004-11-16 2,679
818

자작 컨트롤이 아닌 상용 컨트롤인 경우

정보문

2004-11-16 2,716
817

re: 자작 컨트롤이 아닌 상용 컨트롤인 경우

송원석

2004-11-16 2,927
816

액티브X의 활용 2편

정보문

2004-11-14 2,799
815

re: 액티브X의 활용 2편 [2]

송원석

2004-11-15 2,702
814

active X 활용에 대해서요.

정보문

2004-11-08 2,998
813

re: active X 활용에 대해서요. [2]

송원석

2004-11-08 2,639
812

저장프로시저의 반환값... [1]

zziuni

2004-11-04 3,815
811

re: 저장프로시저의 반환값...

송원석

2004-11-04 3,100
810

re: 저장프로시저의 반환값... [1]

zziuni

2004-11-05 2,760
809

re: 저장프로시저의 반환값... [3]

오마르

2004-11-05 926
808

set nocount on [2]

verve

2004-11-12 892
807

오늘 궁금한 점은... 음.. 음... 본문 참조해 주세요.. ^^;;;

오마르

2004-11-02 769
806

re: 오늘 궁금한 점은... 음.. 음... 본문 참조해 주세요.. ^^;;;

송원석

2004-11-02 2,565
805

re: 오늘 궁금한 점은... 음.. 음... 본문 참조해 주세요.. ^^;;;

오마르

2004-11-04 722
804

re: 오늘 궁금한 점은... 음.. 음... 본문 참조해 주세요.. ^^;;; [3]

송원석

2004-11-04 2,869
802

안녕하세요~~~ 창복사(ctrl+n) 에 대한 질문이데요 ^^

오마르

2004-11-01 828

re: 안녕하세요~~~ 창복사(ctrl+n) 에 대한 질문이데요 ^^ [1]

송원석

2004-11-01 2,866
800

아이피에 대한 궁금한 점요~ ^^

오마르

2004-10-28 875
799

re: 아이피에 대한 궁금한 점요~ ^^ [1]

송원석

2004-10-28 2,904
798

새창 띄우기에 대한 질문인데요.. ^^

오마르

2004-10-28 1,026
797

re: 새창 띄우기에 대한 질문인데요.. ^^ [2]

송원석

2004-10-28 2,863