2014-12-09 7 views
0

다음과 같은 스크립트가 사용자를 선택한 바이너리 항목 (doc, docx, ppt, pptx, xls, xlsx)으로 리디렉션합니다.윈도우 위치가 ppt로 대체됩니다.

$(document).ready(function() { 
    window.onload = function() { 
     setInterval(function() { 
      window.location.replace("<%=litLink.Text%>"); 
     }, 500); 
    }; 
}); 

사용자가이 페이지로 이동하여 사용자를 문서로 리디렉션합니다. litLink에는 사용자가 리디렉션되어야하는 URL이 포함됩니다. 이것은 PDF에서 작동하지만 사용자가 PPT/XLS/DOC 파일을 선택하면 페이지에서이 스크립트가 반복적으로 실행됩니다. 다운로드를 중단하려면 브라우저를 닫아야합니다.

어떻게이 문제를 해결할 수 있습니까? 문서를 다운로드 한 다음 스크립트가 실행을 멈추기를 원합니다.

+1

그럼 왜'setInterval'을 호출하고 있습니까? – SLaks

+1

PDF가 작동하는 이유는 브라우저가 브라우저에서보기를 지원하여 리디렉션되고 코드가 더 이상 실행되지 않기 때문입니다. 일반 파일의 경우 코드는 500ms마다 파일을 다운로드합니다. 왜 당신은 간격이 있는지 모르겠습니다. –

+0

고마워요! 나는 대답을 받아 들였지만 당신은 괜찮 았어! –

답변

1

내 생각 엔 당신이있는 경우에 당신은 setTimeout를 사용해야 다운로드 메시지를 표시하기 전에 번 500ms로 대기하고 싶습니다이다,하지 setInterval :

$(window).on("load", function() { 
    setTimeout(function() { 
     window.location.replace("<%=litLink.Text%>"); 
    }, 500); 
}); 

나는 또한 위해 window.onload 할당을 대체 이미 jQuery를 사용하고 있기 때문에 동등한 jQuery 양식을 사용하면 load 이벤트를 window에 첨부 할 수 있습니다.

+0

감사합니다 mc10, 화려한 대답. 내 코드가 작동하지 않는 이유를 설명해 준 방식을 좋아합니다. 자바 스크립트에 대한 나의 지식은 조금 희박하다! :) –

관련 문제