'2015/01/23'에 해당되는 글 1건

  1. 2015.01.23 prototype 백스페이스(backspace) 방지.

웹페이지에서 백스페이스를 누르면 뒤로가기 가 되는데 

에디터를 이용해 글을 작성하는 중 포커스가 이동 되어 백스페이스를 누르면 

저장되지 않고 뒤로가기가 되어 작성중인 글을 날리는 경우가 있어 해당 기능을 막아달라는 고객의 요청이 있었습니다. 


코드를 수정하면 적용이 까다롭기 때문에 웬만하면 플러그인이나 설정을 통해 하려고 하였으나 

바람직 하지 않은것 같아 검색을 해보니 대부분 javascript 코드로 막는것 같았습니다. 


jquery 예제는 많지만 prototype 예제가 없어 테스트를 통해 예제를 만들었습니다.


        //prevent backspace key
         if( event.keyCode == 8) {
             // with no field focused, the target will be HTMLBodyElement
            if( event.currentTarget == document) {
               // stop this event from propagating further which prevents                     
               // the browser from doing the 'back' action
               if(event.target.nodeName == "INPUT" ||
                  event.target.nodeName == "TEXTAREA")
               {
                   
               }
               else
               {
                    return false;
               }
            }
          }

event는 event를 받은 변수명.
event.target.nodeName 은 이벤트를 발생시킨 객체의 <input><textarea> 와 같은 element이름 으로 보임. 

이 스크립트를 모든 페이지에 추가해야 backspace를 제대로 막을 수 있습니다. 

끝. 


Posted by 마법수정화살
,