[javascript] iframe이 jQuery에서로드를 마쳤을 때 이벤트를 발생시키는 방법은 무엇입니까?

페이지 내에서 PDF를로드해야합니다.

이상적으로는 PDF가로드되면 대체되는 로딩 애니메이션 gif를 갖고 싶습니다.



답변

나는 그것을 할 수 없다고 확신합니다.

PDF 이외의 거의 모든 것, 심지어 Flash도 작동합니다. (Safari, Firefox 3, IE 7에서 테스트 됨)

안 됐네요.


답변

시도해 보셨습니까?

$("#iFrameId").on("load", function () {
    // do something once the iframe is loaded
});


답변

이것은 나를 위해 해냈습니다 (pdf가 아니라 또 다른 ” onload저항”내용).

<iframe id="frameid" src="page.aspx"></iframe>
<script language="javascript">
    iframe = document.getElementById("frameid");

    WaitForIFrame();

    function WaitForIFrame() {
        if (iframe.readyState != "complete") {
            setTimeout("WaitForIFrame();", 200);
        } else {
            done();
        }
    }

    function done() {
        //some code after iframe has been loaded
    }
</script>  

도움이 되었기를 바랍니다.


답변

나는 이것을 시도하고 있고 나를 위해 일하는 것 같습니다 :
http://jsfiddle.net/aamir/BXe8C/

더 큰 pdf 파일 :
http://jsfiddle.net/aamir/BXe8C/1/


답변

$("#iFrameId").ready(function (){
    // do something once the iframe is loaded
});

대신 .ready를 시도 했습니까?


답변

나는 이것에 대한 즉각적인 접근 방식을 시도했지만 PDF 콘텐츠에 대해서는 테스트하지 않았지만 일반 HTML 기반 콘텐츠에 대해서는 작동했습니다. 방법은 다음과 같습니다.

1 단계 : Iframe을 div 래퍼로 래핑

2 단계 : div 래퍼에 배경 이미지를 추가합니다.

.wrapperdiv{
  background-image:url(img/loading.gif);
  background-repeat:no-repeat;
  background-position:center center; /*Can place your loader where ever you like */
}

3 단계 : iframe 태그 추가 ALLOWTRANSPARENCY="false"

아이디어는 iframe이로드 된 후 iframe이로드 애니메이션을 덮을 때까지 래퍼 div에로드 애니메이션을 표시하는 것입니다.

시도 해봐.


답변

jquery Load와 Ready를 모두 사용하면 iframe이 진정으로 준비되었을 때 실제로 일치하지 않는 것 같습니다.

나는 이런 식으로 결국

$('#iframe').ready(function () {
    $("#loader").fadeOut(2500, function (sender) {
        $(sender).remove();
    });
});

#loader는 스피너 gif가있는 iframe 위에 절대적으로 배치 된 div입니다.