Original Code (ES5)

/* Hello World */
"use strict";

// 로그인/아웃 후 URL 정리
if(document.URL.toLowerCase().indexOf("?action=log") != -1) location.replace("./");

// 페이지 선택 및 키보드 입력 제한
$("body *").attr("unselectable", "on");
$("html").on("keydown", function(event)
{
  var e  = event || window.event;
  var ek = event.keyCode || event.which;
  var whiteList = /^(27|33|34|35|36|37|38|40|39|100|102|116|122)$/;
  if(!whiteList.test(ek)) { return false };
});

 

Fixed Code (ES6)

"use strict";

if(document.URL.toLowerCase().indexOf("?action=log") != -1) {
  location.replace("./");
}

$("body *").attr("unselectale", "on");
$("html").on("keydown"), (event) => {
  let e = event || window.event;
  let eKey = event.keyCode || event.which;
  let whiteList = /^(27|33|34|35|36|37|38|40|39|100|102|116|122)$/;

  if(!whiteList.text(eKey)) {
    return false;
  }
}

 

Comment & Discussion

 

기존의 ES5 문법을 최대한 ES6 문법으로 적용합니다. jQeury문은 불가피하게 계속 사용하게 될 것 같습니다.

  • 로그인 후, URL (“?action=login” / “?action=logout”) 처리
  • 미디어 뷰어에 허용된 단축키 외, whitelist를 통해 이벤트 제어

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

This site uses Akismet to reduce spam. Learn how your comment data is processed.