티스토리 뷰


페이지에서 화면 새로고침이 안되게 하고싶을 때
이렇게 함수를 넣어주면 화면 페이지 새로고침이 안된다.

1
2
3
4
5
6
7
8
9
10
11
function noEvent() { // 새로 고침 방지
            if (event.keyCode == 116) {
                alert("새로고침을 할 수 없습니다.");
                event.keyCode = 2;
                return false;
            } else if (event.ctrlKey
                    && (event.keyCode == 78 || event.keyCode == 82)) {
                return false;
            }
        }
    document.onkeydown = noEvent;
cs



그런데 특정상황
그러니까 나의 경우에는 업로드 중에는 새로고침이 되면 안된다.
그래서 나는 form 안에 hidden 값으로 id가 uploadState인 input을 주었고
ajax안에서 전송이 시작될 때 uploadState 의 value 값을 1로 주어
업로드 중일 때 새로고침을 할 수 없고 
업로드가 완료되면 value 값을 다시 0으로 주어 새로고침이 가능하게 만들었다.


1
<input type="hidden" id="uploadState" name = "uploadState" value="" />
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
function noEvent() { // 새로 고침 방지
 
        if ($("#uploadState").val() == "1") {
            if (event.keyCode == 116) {
                alert("새로고침을 할 수 없습니다.");
                event.keyCode = 2;
                return false;
            } else if (event.ctrlKey
                    && (event.keyCode == 78 || event.keyCode == 82)) {
                return false;
            }
        }
    }
    document.onkeydown = noEvent;
cs




끝!



댓글