jquery
  • iframe
  • internet-explorer-8
  • ie8-compatibility-mode
  • 2016-05-25 7 views 1 likes 
    1

    jqueryでiframeを作成していますが、IE8では動作していません。iframeがIE 8で正しく読み込まれない

    $("#DB_window").append("<iframe frameborder='0' hspace='0' style='width:100%;height:100%;' src='"+urlNoQuery[0]+"' id='DB_iframeContent' name='DB_iframeContent"+Math.round(Math.random()*1000)+"' onload='db_showIframe()'> </iframe>"); 
    

    それは要求を行うが、要求はので、私はそれを変更し、AJAX

    $("#DB_window").append("<iframe frameborder='0' hspace='0' style='width:100%;height:100%;' data-src='"+urlNoQuery[0]+"' id='DB_iframeContent' name='DB_iframeContent"+Math.round(Math.random()*1000)+"' onload='db_showIframe()'> </iframe>"); 
    

    とコンテンツ

    var iframe = $("#DB_window").children('iframe'); 
         $.ajax({ 
          url: iframe.data("src"), 
    //   dataType : "text/html", 
          success: function(content) { 
           iframe.html(content); 
          } 
         }); 
    

    しかし、中を取得するために、AJAX呼び出しを行うと、それをアクセスしようとした中止されますIE8は"src"のURLのみを要求し、ページのCSSとjsの参照は要求しません。したがって、iframeは適切にレンダリングされず、データだけで構成され、したがってスタイリングはありません。 IEでiframeをリクエストするにはどうすればよいですか?

    答えて

    1

    Iframeリクエストは、最初のケースでIEで中断されていました。だから私は、DOM要素が閉じられる前にDOM要素を変更しようとすると、IEがこれを行うことを知りました。つまり、別の要素に子要素を追加しようとしたときに、他の要素(document.bodyなど)がまだロードされていると、このエラーが発生します。これは.appendChildなどを使用した場合に発生します。 だから私はsetTimeoutを使用してくれました。

    setTimeout(function(){ 
    $("#DB_window").append(... 
    },2000); 
    
    関連する問題