function post_to_url(path, params, method) {
    method = method || "post";
    var form = document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", path);
    for(var key in params) {
        if(params.hasOwnProperty(key)) {
            var hiddenField = document.createElement("input");
            hiddenField.setAttribute("type", "hidden");
            hiddenField.setAttribute("name", key);
            hiddenField.setAttribute("value", params[key]);
            form.appendChild(hiddenField);
        }
    }
    document.body.appendChild(form);
    form.submit();
}

위 함수를 사용하면 된다.

* path : post를 날릴 url 주소.

* params : 전송할 데이터. JSON 형식으로 넘겨주면 된다.

* method : 안 써도 되는 항목. 안쓰면 기본적으로 post 형식으로 전송되고, "get"이라 하면 get 방식으로 전송한다.

사용자 정보 검색을 하는 페이지를 제작한 적이 있다.

특정 조건에 맞게 검색을 하고, 결과 테이블을 클릭하면 사진이 뜨는 귀여운(?) 모듈이었는데

이름은 무조건 한글인데 계속 한/영 키를 눌러야 하는 불편함이 있었다.

 

근데 방법이 있었다.^^

 

<input type ='text' id='nm' style='ime-mode:active'>

이게 active 로 되어있으면 무조건 처음 입력 시 한글이 나오게 된다. 참 좋네 ㅋㅋ

보통 팝업창 사이즈를 정할 때

 

window.open() 안에다가 width, height 속성을 줘서 크기를 정한다. 근데, 팝업 페이지 크기가

 

제각각일 경우 일일히 수동으로 정해주면 매우 비효율적이게 된다. 이러고 싶지 않을 때(?) 사용한다.

 

일단 평소와 다름없는 팝업 호출 함수를 하나 만든다.

 

 

 

function openWindow(url, name)    {

var win;

win = window.open(url, name, 'scrollbars=no,width=10,height=10,status=no,resizable=no');

win.opener.self;

}

 

일단 여기서는 width와 height에 아무 값이나 넣어도 상관 없다...

 

그 뒤, 각각의 팝업 페이지에 이 함수를 집어넣는다. (사이즈를 재조정 해주는 함수다.)

 

function resizeWindow(win)    {

var wid = win.document.body.offsetWidth + 30;

var hei = win.document.body.offsetHeight + 40;        //30 과 40은 넉넉하게 하려는 임의의 값임

win.resizeTo(wid,hei);

}

 

 

이걸 넣어주고, 팝업페이지의 body가 onload 될 때 이 함수를 실행시켜주고, 자신을 인자로 넘기면 된다.

 

<body onload='resizeWindow(this)'>

메뉴, 아이콘, 스크롤 이런거 없는 깔끔한 팝업창을 띄우는  소스다.

window.open("팝업창의주소", "팝업제목", "resizable=no,scrollbars=no,status=no,left=0px,top=0px,width=500px,height=500px");

 

이걸 삽입하면 된다. 근데 내가 사용했을 때, 3번째 파라미터를 자바스크립트 변수의 연결

ex) left='+leftNum+'px,'

뭐 이런 식으로 사용했었는데 작동이 안됐다... 이럴 때에는

변수 한개 선언한 다음에 한 변수에 싹 연결시켜 옵션을 만들어 주고 ex) var options = 어쩌고+저쩌고...;

3번째 파라미터에 변수 한개만 딱 넣으면 잘 동작한다.

 

이런거 함수 한개 만들어 놓고 쓰면 편할 듯 싶다.

예를 들어 플래시 버튼 눌렀을 시 팝업 띄우는 경우에

 

on(Release)    {

getURL("javascript:thisisNewFunction('wow.html', '800', '600')");

}

요런식으로 간단하게 사용할 수 있다.

만약 어떤 사이트에서

인트로 영상을 띄운 뒤 메인 페이지로 넘어가게 짠다고 치자.

그냥 플래시 같은 경우면, 타임라인의 마지막에 getURL("주소") 이런식으로 한줄 넣어주면 되겠지만,

html에서 직접 동영상을 올려 재생하는 경우면 난감해진다. 그렇다고 로딩시간, 전송시간 고려 안하고

setTimeout() 써버릴 수는 없으니 말이다.. 근데 찾아보니 방법이 있었다;; -_-

일단 html5가 지원된다면..

<script>

if(window.addEventListener)    {

window.addEventListener('load', function()    {

if(window.HTMLVideoElement)    {

var player = document.getElementById('player');

player.addEventListener("ended", function()    {

//이 부분이 실행된다

alert("재생 종료");

});

}

}, false);

}

</script>

이걸 <head>에 넣고, <body>에는

<video id='player' (각종 속성은 알아서..) >

<source src='소스주소' >

</video>

이런 식으로 작성한다. 새로 생긴 video 태그 자체의 이벤트를 받아 제어하는 것 같다.

(사실 작업환경이 html5가 불가능 하므로 직접 해보지는 못했다 ㅠㅠ)

 

만약 html5 미만의 환경이라면..

<head>

<script for='ie_player' event='PlayStateChange(NewState)' type='text/javascript'>

if(NewState == 8)    {

//여기가 실행된다

alert('재생 종료');

}

</script>

</head>

--------------------------------------

<body>

<object id='ie_player' classid='CLSID:6BF52A52-394A-11d3-B15300C04F79FAA6' (속성은 알아서들..)  >

<param name='AutoStart' value='true'>

<param name='URL' value='(주소 입력)'>

<param name='PlayCount' value='1'>

<param name='uiMode' value='full'>

</object>

</body>

이런식으로 object 태그를 사용하면 된다.