2011-04-19 5 views
10

내 웹 사이트에서 새로 고침을 사용하지 않도록 설정하려고합니다. 사용할 수 없게하는 방법이 있습니까 F5, - 또는 웹 페이지에서 다시로드 하시겠습니까?웹 응용 프로그램에서 브라우저 새로 고침을 비활성화 할 수 있습니까?

+2

자신 만의 브라우저를 개발하면 훨씬 좋습니다. –

+3

브라우저를 새로 고침하면 코드가 손상된다는 것을 발견했기 때문에 개발자가이 가능성을 제안한다고 들었습니다. 그러나 이것은 웹 브라우저의 기본 네비게이션 모델 (개발중인 플랫폼)을 코드가 무시하거나 무시할 경우에만 가능합니다. 대답은 모델을 더 이상 망치지 않는 것입니다. 웹의 정상적이고 예상되는 동작을 망치는 것을 수정하는 것입니다. –

+0

페이지에 타이머가 포함 된 경우 새로 고침을 비활성화해야합니다. 다른 타이머는 처음부터 시작됩니다. –

답변

2

의견이 있습니다. 이 페이지에는 답이 있습니다. (여기에 답 라벨 아래)

  • 유형 그것의 일부 텍스트.
  • 그런 다음이 페이지

이 표시 어떤 경고 메시지가 새로 새로 고침, 난 당신이 대신 새로 고침 기능을 비활성화의, 유사한 경고 메시지를 표시하는 것이 좋습니다.

1

아니요, 그런 방법은 없습니다. 새로 고침하지 말라고 사용자에게 경고 할 수 있습니다.

7

아니요, 사용 중지 할 방법이 없습니다.

"이 작업을 다시 제출 하시겠습니까?" 대화 상자에서 Post/Redirect/Get을 사용하십시오.

0

일부 브라우저에서 작동하는 트릭이있을 수 있지만 페이지를 새로 고칠 수 없다는 보장은 없습니다. 브라우저와 웹 표준은 활짝 열려 있으므로 사용자는 구현 한 모든 것을 해결하기 위해 브라우저를 쉽게 해킹 할 수 있습니다.

새로 고침이 사용자 환경에 부정적인 영향을주는 경우 텍스트 경고를하는 것이 가장 좋습니다.

멱등수 부족과 같은 버그를 수정하려면 버그를 수정해야합니다.

12
window.onbeforeunload = function() {return false;} 

당신은 자신이 일을하려면이 코드를해야하므로 사용자가 아닌 새로 고침을 확인하지 않는 한이 페이지를 떠나 비활성화합니다.

당신은 당신이 그걸로 무엇을하고 있는지 결코 말하지 않았습니다.

+0

어떻게 메시지를 사용자 정의 하시겠습니까? – Pacerier

+0

https://stackoverflow.com/questions/38879742/is-it-possible-to-display-a-custom-message-in-the-beforeunload-popup –

+0

"모든 사람들이 당신이 할 수 없다고 말한 것이 놀랍습니다. "나는 모두가 옳다고 생각한다. 확인 모달을 표시 할 수 있지만 무엇이든지 페이지 재로드를 비활성화 할 수는 없습니다. – Jaime

2

나는 중지 서버 측 스크립트를 사용하는 것보다 다른 그러나, 나는 F5를 사용하지 않도록하는 것이 매우 쉽게 jQuery를 어떻게 알아 "재"(난 아직 하나의 자신을 것을 필요) 새로 고침 클릭을 해제하는 방법을 모른다 :

function disableF5(e) { if (e.which == 116) e.preventDefault(); }; 
// To disable f5 
$(document).bind("keydown", disableF5); 
// To re-enable f5 
$(document).unbind("keydown", disableF5); 
3

페이지를 입력 할 때마다 쿠키가 있는지 확인하십시오. 쿠키가 있으면 새로 고침되었음을 알 수 있습니다.쿠키가 제로 기간이 하나 생성되지 않은 경우

은 여전히 ​​편리한 솔루션을 찾고있는 경우

0

는 방법이있다 : 나는 그들이 새로 고침을 클릭하거나 멀리 다른 페이지로 이동하려고 할 때 최종 사용자에게 F5를 사용하지 않도록하며 메시지를 표시하는 데 사용할 수있는 빠르고 간단한 jQuery 플러그인을 만들었습니다 사용자가 F5 키를 눌러 페이지를 새로 고치는 것을 방지합니다. 몸 태그 안에이 코드를보십시오 :

<body onkeydown="return (event.keyCode != 116)"> 
0

당신은 Ctrl + F5, Ctrl 키 + R, F5 키를 사용하지 않으려면, 백 스페이스는 다음이 간단한 코드를 사용할 수 있습니다. 이 코드는 Chrome뿐 아니라 Mozila에서도 작동합니다. 이 코드를 body 태그 안에 추가하십시오.

<body onkeydown="return (event.keyCode == 154)"> 
관련 문제