为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查iframe是否已加载或是否包含内容?

如何检查iframe是否已加载或是否包含内容?

跃然一笑 2019-10-10 14:10:51
我有一个id =“ myIframe”的iframe,这里是我加载其内容的代码:$('#myIframe').attr("src", "my_url");问题是有时加载时间太长,有时加载速度非常快。所以我必须使用“ setTimeout”函数:setTimeout(function(){   if (//something shows iframe is loaded or has content)   {       //my code   }   else   {       $('#myIframe').attr("src",""); //stop loading content   }},5000);我唯一想知道的是如何确定是否已加载iFrame或是否包含内容。使用iframe.contents().find()将不起作用。我不能用iframe.load(function(){})。
查看完整描述

3 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

尝试这个。


<script>

function checkIframeLoaded() {

    // Get a handle to the iframe element

    var iframe = document.getElementById('i_frame');

    var iframeDoc = iframe.contentDocument || iframe.contentWindow.document;


    // Check if loading is complete

    if (  iframeDoc.readyState  == 'complete' ) {

        //iframe.contentWindow.alert("Hello");

        iframe.contentWindow.onload = function(){

            alert("I am loaded");

        };

        // The loading is complete, call the function we want executed once the iframe is loaded

        afterLoading();

        return;

    } 


    // If we are here, it is not loaded. Set things up so we check   the status again in 100 milliseconds

    window.setTimeout(checkIframeLoaded, 100);

}


function afterLoading(){

    alert("I am here");

}

</script>


<body onload="checkIframeLoaded();"> 


查看完整回答
反对 回复 2019-10-10
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

请使用:


$('#myIframe').on('load', function(){

    //your code (will be called once iframe is done loading)

});

随着标准的更改,更新了我的答案。


查看完整回答
反对 回复 2019-10-10
  • 3 回答
  • 0 关注
  • 920 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信