Rev. 2.73

arkanoid.gif

자바스크립트의 달인인 Scott Schiller씨는 놀라운 게임을 만들었습니다. 1980년대 인기 게임이었던 알카노이드를 자바스크립트로 구현한 것입니다. 특이한 점은 플레이어가 직접 레벨 디자인을 할 수 있고 저장한 레벨을 다른 플레이어가 즐길수 있다는 것입니다. Ajax와 Json의 형태로 하이스코어 및 레벨데이터를 수신하며, 플래시 객체를 이용한 사운드효과는 일품입니다. 완성도가 매우높은 이 게임은 놀랍게도 "cross-browser compatibility"입니다. (플레이 하기)

Comments

Binny V A씨는 많은 자바스크립트 라이브러리가 있음에도 단축키를 지원하는 라이브러리는 발견하지 못했다면서 구글의 웹 애플리케이션인 Gmail이나 Reader처럼 보다 쉽게 웹 애플리케이션에 단축키를 사용할 수 있도록 함수를 만들어 배포했습니다.

아래의 예제를 보면 첫번째 아규먼트로 키를 지정하고, 두번째로 콜백 함수를 넣습니다. 마지막 세번째에는 옵션을 지정할 수 있습니다. 지원 되는 키에는 "Ctrl+X"와 같은 형식으로 작성하여 매우 직관적이며 Tab, Space, Return, Enter, Backspace, Scroll_lock, Caps_lock, Num_lock, Pause, Insert, Home, Delete, End, Page_up, Page_down, Left, Up, Right, Down, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12 키를 지원합니다.

옵션으로는 'type'에 'keydown','keyup','keypress' 이벤트를 변경할 수 있으며 'target'에 이벤트가 작동할 DOM단위의 영역을 설정할 수 있고 'propagate' 증식옵션(event.stop 또는 return false?)을 Boolean형태로 사용할 수 있습니다.

다운로드 자바스크립트 : shortcuts.js

예제 코드

shortcut("Ctrl+Shift+X",function() {
	alert("Hi there!");
});

shortcut("Ctrl+B",function() {
	alert("The bookmarks of your browser will show up after this alert...");
},{
	'type':'keydown',
	'propagate':true,
	'target':document
});

팁: 예제 단축키를 눌러보아요!

Comments

RewriteEngine On
RewriteBase /
RewriteRule ^search/(.*)$ index.php?stext=$1 [L]

예를 들어 모드-리라이트(mod_rewrite)가 지원되는 서버 환경에서 태터툴즈 클래식에 위와 같은 RewriteRule을 .htaccess에 적용하면 다음과 같은 URL로 검색결과에 접근할 수 있게됩니다.
firejune.com/search/검색
urlencode = %EA%B2%80%EC%83%89
rewrite = firejune.com/index.php?stext=%EA%B2%80%EC%83%89

그러나 아래와 같이 문자열에 '/'가 삽입된 검색어를 입력하면 '/'문자가 '%2F'로 인코딩되면서 Apache 서버로부터 "404 object not found"가 발생합니다.
firejune.com/search/http://google.co.kr
urlencode = http%3A%2F%2Fwww.google.co.kr
error, 404 object not found.

mod_rewrite는 '%2F'문자열을 경로로 인식하기 때문입니다. 이 문제를 해결하려면 urlencode된 '%2F'문자열을 찾아서 '/'로 다시 돌려주거나 rawurlencode를 이용해서 '%252F'와 같이 인코딩하면 이 오류를 피할 수 있습니다. url 전체에 rawurlencode를 쓰면 오류는 피할 수 있으나 한글인코딩 문자열에도 모두 적용되기 때문에 사용하지 않는 것이 좋을것 같습니다.

$url = '검/색';

$url = rawurlencode(urlencode($url));
// ==> $url = %25EA%25B2%2580%252F%25EC%2583%2589

function rewrite_urlencode($url) {
    $url = str_replace('%2F', '%252F', urlencode($url));
    // or $url = str_replace('%2F', '/', urlencode($url));
    return $url;
}
$url = rewrite_urlencode($url) ;
// ==> $url = %EA%B2%80%252F%EC%83%89

Comments