imejs icon indicating copy to clipboard operation
imejs copied to clipboard

Javascript IME for CJK(deprecated)

imejs

  • Javascript IME(Input Method Editor) for CJK
  • version: 0.1
  • 목적: 운영체제 IME를 사용하지 않으므로 일관성이 있으며 한글 IME가 설치되지 않은 운영체제에도 한글을 입력할 수 있음

지원 브라우저, 의존성

  • Browser : Chrome, Safari, IE 8~, FireFox
  • Javascript, DOM(Document Object Model)외 의존성 없음

지원 자판

  • 표준 영문 자판
  • 표준 두벌식 자판 : hangul 2 (KS X 5002)

특징

표준 두벌식 자판 오타 자동 수정

  • 자음 조합으로 된소리('ㄲ', 'ㄸ', 'ㅃ', 'ㅆ', 'ㅉ') 입력하기: ex) ㄱ+ㄱ=ㄲ
  • 모음 조합 입력하기: ㅏ+ㅣ= ㅐ
  • 모음, 자음 입력순서 보정하기: ex) ㅏ+ㄱ = 가

사용방법

먼저 ime.js 파일을 페이지에 추가한다.

<script type="text/javascript" src="./ime.js"></script>

그리고 스크립트 테그에 다음과 같이 코딩한다.

//예제코드는 jQuery 1.8.3을 사용, 돌아가는 코드는 example.js 참고
$(document).ready(function(){
  // 01. keyCommandHandler를 정의한다.
  // @param oCmd 키 명령 핸들러
  var fnKeyCommandHandler = function(oCmd){
    if(oCmd.name == "insChar"){ //문자입력
      $("#editor").text($("#editor").text() + oCmd.value); 
    }else if(oCmd.name == "cmbChar"){ //문자입력중(한글 조합중)
      var sContents = $("#editor").text();
      sContents = sContents.substring(0, sContents.length -1) + oCmd.value;
      $("#editor").text(sContents); 
    }else if(oCmd.name == "delChar"){ //문자삭제
      var sContents = $("#editor").text();
      sContents = sContents.substring(0, sContents.length -1);
      $("#editor").text(sContents);
    }else if(oCmd.name == "nextIm"){ //다른 IME를 선택명령, 2벌식>영어>3벌식(390) 순
    }
  }
  
  //02. IME 초기화, 키입력에 대한 자체 포커스를 갖음
  var elHolder = $("#status")[0]; //이벤트를 받는 리스너의 홀더 엘리먼트
  ime.init(fnKeyCommandHandler, elHolder);
});

TODO

  • 한글 세벌식 최종, 390 자판 지원
  • 한글 두벌식 일부 동시치기 지원
  • 한글 세벌식 전부 동시치기 지원
  • 일본어 자판 지원