Javascript 加载iframe时的反馈有时无法正常工作

Javascript 加载iframe时的反馈有时无法正常工作,javascript,jquery,Javascript,Jquery,我的页面中有一个iframe <iframe id="iframe" src="myurltopage" name="iframe" title="..." overflow-y='scroll' overflow-x='hidden'></iframe> <div id="spinner"><h3><i class="fa fa fa-spinner fa-spin"></i></h3></

我的页面中有一个iframe

<iframe id="iframe" src="myurltopage" name="iframe" title="..." overflow-y='scroll' overflow-x='hidden'></iframe>      
<div id="spinner"><h3><i class="fa  fa fa-spinner fa-spin"></i></h3></div>
有时,微调器不会隐藏,即使我看到页面已正确加载,并且在控制台中,我看不到任何打开的加载过程。我必须重新加载页面一次,有时甚至更多,比所有的工作都好

有没有人知道它会导致什么和/或我如何防止这个问题


非常感谢。

如果您想在页面上的所有内容都准备好时隐藏微调器(意味着所有资源都已下载,如图像、字体、css、脚本、iFrame等),则可以使用以下代码。如果您想在仅加载iFrame时隐藏微调器,请参考我在注释中输入的

 $(window).on('load', function() {
     $('#spinner').fadeOut();
 });   

根据Rahul Raut对问题评论中的链接信息,我决定用这种方式解决它

var init=false;

    $(function () {
          var innerDoc = ($("#iframe")[0].contentDocument) ? $("#iframe")[0].contentDocument:$("#iframe")[0].contentWindow.document;
          innerDoc.onreadystatechange = function () {
                if(init==false){  alert("Go");   }
                if ($('#spinner').is(":visible") == true){ $('#spinner').fadeOut(); }           
              return;
          };      
          setTimeout(innerDoc.onreadystatechange, 3000);
      });

微调器div在iframe内部还是在iframe外部?我已经更新了我的帖子,微调器在外部。这将帮助您解决问题-检查此链接
var init=false;

    $(function () {
          var innerDoc = ($("#iframe")[0].contentDocument) ? $("#iframe")[0].contentDocument:$("#iframe")[0].contentWindow.document;
          innerDoc.onreadystatechange = function () {
                if(init==false){  alert("Go");   }
                if ($('#spinner').is(":visible") == true){ $('#spinner').fadeOut(); }           
              return;
          };      
          setTimeout(innerDoc.onreadystatechange, 3000);
      });