2007년 8월 31일 금요일

Blogspot의 HTML/Javascript요소 추가 문제



Blogspot에 HTML/Javascript 요소 추가 기능이 있다면 이글루스에는 메모장 기능이 있다.

비록 이글루스에서는script, embed같은 특정 태그가 먹질 않지만, 이렇다고 해서 스크립트를 실행시킬 수 있는 방법이 아예없는것은 아니다. 바로 이벤트를 이용하는것.

onload, onclick, onselect등 이벤트들이 여과없이 들어간다는것을 알았다.

그래서 처음 생각해낸것이 input박스로 사용자와 커뮤니케이션 하는건 어떨까.
기존 form으로 submit 하는것은 페이지도 이동해야 하고 번거로웠지만, 요즘은 비동기가 유행하지 않는가!. 하지만 이러한 간단한 기능을 구현하는데 굳이 그런 기술을 쓸 필요는 없고... 해서 소스를 하나 짜봤었다.

=======

<body oncontextmenu="return false" ondragstart="return false" onselectstart="return false"><input type="text" onkeydown="if(event.keyCode==13 && this.value!=''){wrt.src+='?text=' + encodeURIComponent(this.value);this.value='적어주셔서 감사합니다.';}"><br /><center>작성후 엔터꾹</center><img src="http://khnrc.net/eg/egw.php" width="0" height="0" id="wrt" /></body>


=========


물론 불펌방지기능도 된다. (이글루스에는 이 기능이 없었던것 같았다-적어도 내가 운영할때까지는)
가장 중요한건 input으로 글을 게시할 수 있다는것.

소스 설명을 하자면, onkeydown으로 키가 눌릴때 이벤트가 발생한다. if구문으로 현재 눌린 키값이 keycode 13번인 엔터키인지 확인하고, 엔터키가 눌린 상태이고, input이 비어있지 않다면, 글을 게시하는 것이다.
근데 글 게시하는 방법도 약간 웃기다. 이미지에 쿼리값으로 글을 보내는것. 처음에는 encodeURIComponent를 몰라서 한글이 깨지는 삽질도 몇번 했었다. 굳이 ajax 기법이 필요없는 경우에는 img코드로 하는것이 더욱 현명해 보인다.








또 샛길로 빠졌는데, 내가 지금 이 글을 적고 있는 이유는 blogspot에 이 기능을 넣어보려고 했는데 실패했다는것.!

자세히 보니까 blogspot의 이 요소(HTML/Javascript는 길으니까 이 요소라고 alias 하자.ㅎㅎ)는 웹표준에 맞도록 사용자의 입력값을 고치고 있었다. 근데 onkeypress 들어가고 스타일시트가 들어가니 파서가 어지러웠는지 이상한 코드를 리턴한것이다. 혹시 몰라서 소스를 웹표준 형식(이게 정의하긴 뭐하지만 대충 파이어 폭스에서도 돌아가고 이슈화된 문제를 체크하긴 했다.)으로 해도 문제가 생겼다.

어쩔수 없군, GG. 너무 쉽게 상황이 종료된것 같다. 가끔씩 아무말도 없이 묵묵히 일하면서 에러를 내뿜는 컴퓨터란놈이 야속할때가 있다.-_-

댓글 없음: