작성자 | Devastator | ||
---|---|---|---|
작성일 | 2010-12-24 14:53:16 KST | 조회 | 239 |
제목 |
그냥 심심해서..
|
끝말잇기에서 ↑요부분을 제어하는 부분은 ↓아래와 같습니다.
<input type="text" -->입력폼
name="word" -->전송필드명
oncontextmenu="return preventCtx(event);"
-->오른쪽버튼 클릭시 나오는 메뉴 이벤트 발생시 preventCtx()함수 호출
onkeydown="return checkPress(event);" -->키보드 글자 누를시 checkPress()함수 호출
onfocus="this.setAttribute('autocomplete', 'off');" -->입력폼에 커서가 올 경우 자동완성 속성을 끔
class="memo" -->CSS제어명
maxlength="50" -->최대입력 글자수
/>
<script>
function preventCtx(event) {
try {
event.preventDefault(); -->이벤트처리 방지
} catch (e) {
return false;
-->타브라우저등에서 에러 발생시 false를 반환함으로서
결과적으로 호출부의 이벤트 수행을 중단하게 됨 (한마디로 오른쪽버튼 메뉴가 안나옴)
}
}
function checkPress(event) {
if (event.ctrlKey) -->Ctrl키 누름 이벤트가 감지될 경우
{
event.returnValue = false; -->이벤트의 결과를 false로 반환함으로서 이벤트가 중단 됨
return false; -->함수 자체의 결과마저 false를 반환함으로서 2중으로 이벤트 중단 효과
(한마디로 Ctrl키 눌러도 아무 반응 없음)
}
return true; -->키보드의 다른 이벤트는 정상 반환 되도록 함
}
</script>
자바스크립트를 조금 아는 사람은 그리즈몽키를 사용하면 얼마든지 무력화 시킬수 있는 부분입니다.
업데이트는 ajax를 사용하기 때문에 한술 더 떠서 자동반응도 가능하겠죠.
아, 그리고 Ctrl키를 통째로 막으신건 잘하신것 같은데, 붙여넣기를 할수 있는 다른 키조합은 안막으셨네요.
꽤나 오랜 세월 개발자로 일하다보니 이런거 밖에 안보이네요.
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
© PlayXP Inc. All Rights Reserved.