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

    我正在創建一個jQuery的iframe,通過給它一個src,但它不在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>"); 
    

    它使一個請求,但請求被中止,所以我改變了它,並試圖與阿賈克斯

    $("#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>"); 
    

    訪問它,使一個AJAX調用來獲取內容

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

    但IE8它只請求"src"網址,並且不會請求頁面中的css和js引用。所以iframe沒有正確渲染,它只帶有數據,因此沒有它的樣式。我們如何在IE中請求iframe。

    回答

    1

    iframe請求在第一種情況下在IE中被終止。所以當我試圖在關閉之前修改一個DOM元素時,IE就會這樣做。這意味着如果您嘗試將子元素附加到另一個元素,並且該其他元素(如document.body)仍在加載,則會出現此錯誤。這將發生,如果你使用.appendChild等 所以我用setTimeout它爲我工作。

    setTimeout(function(){ 
    $("#DB_window").append(... 
    },2000); 
    
    相關問題