문제

나는 가지고있다

<span class="cssButton"><a href="javascript:void(0);" class="buttonBlue" onclick="swfu.startUpload();"> <img src="http://uber-upload.com/img/icons/up_16.png" alt=""/> Uber-Upload! </a></span>

그리고 해당 버튼을 누르면 페이지를 떠나려고하면 "이 페이지를 떠나고 싶다고 확신합니까?" 업로드가 진행되는 동안 사람들이 우연히 떠나는 것을 방지하는 경고.

업로드 마감 후 변수를 설정하는 것에 대해 걱정하지 마십시오. 추가하겠습니다. 저를 프레임 워크로 만들려면 스마트 코더 중 하나가 필요합니다.

감사!

도움이 되었습니까?

해결책

이 선언을 페이지에 추가하십시오.

var upcount = 0;

on Click을 다음으로 변경하십시오.

onclick="++upcount; swfu.startUpload();"

만약 swfu 업로드가 완료되면 어떤 종류의 이벤트를 제공합니다.

--upcount;

이 처리기를 추가하십시오.

window.onbeforeunload = function() {
    if (upcount > 0) {
        return "The upload is still in progress, leaving the page will cancel it.";
    }
}

브라우저가 onbeforeunload를 존중하는 경우 작동합니다. 그리고 그들 대부분은 대부분의 시간입니다. 그들이하지 않는 곳, 당신은 시도했습니다. 카운터를 사용하면 여러 번 업로드 할 수 있습니다.

Attubevent (IE) 또는 addeventListener (표준) (또는 프로토 타입 또는 jQuery와 같은 라이브러리를 고려하여 속성을 사용하지 않고 이벤트를 첨부하기위한 이벤트를 고려할 수 있습니다. 속성 (일명 DOM0 핸들러)을 사용하는 것은 상당히 구식이며 약간 제한적입니다 (요소 당 이벤트 당 하나의 핸들러 만). 그러나 여전히 작동합니다.

다른 팁

function warnUser()
{
   if(dataIsDirty)
   {
      return "You have made changes. They will be lost if you continue.";
   }
   else
   {
      // Reset the flag to its default value.
      dataIsDirty = false;
   }
}

function isDirty()
{
   dataIsDirty = true;
}

function isClean()
{
    dataIsDirty = false;
}

그런 다음 당신은 그것에서처럼 그것을 사용합니다 onbeforeunload 이벤트.

window.onbeforeunload = warnUser;
dataIsDirty = false; //Or true, depending on if you want it to show up even if they dont' make changes)

그런 다음 사용하려면 'Isclean'기능을 트리거하고 싶지 않은 것에 사용하십시오 (예 : 저장). 양식 필드 편집).

onbeforeunload에 의존하는 것은 기껏해야 스케치입니다. 스패머는 사람들이이를 수행 할 수있는 능력을 제안하는 것과 같은 방식으로 행동을 남용했기 때문에 기본적으로 제거되었습니다.

닫기 이벤트가 버튼을 활성화하여 해고 된 경우 Onbeforeunload에만 응답 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top