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

    Я создаю iframe с jquery, предоставляя ему 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>"); 
    

    Это делает запрос, но запрос прерывается, поэтому я изменил его и попытался к нему доступ с помощью 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>"); 
    

    И сделать вызов 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 не отображается правильно, он приходит только с данными и, таким образом, не имеет стиля с ним. Как мы можем запросить iframe в IE.

    ответ

    1

    Запрос Iframe прерывался в IE с первым случаем. Поэтому я узнал, что IE делает это, когда вы пытаетесь изменить элемент DOM до его закрытия. Это означает, что если вы попытаетесь добавить дочерний элемент в другой, а другой элемент (например, document.body) по-прежнему загружается, вы получите эту ошибку. Это произойдет, если вы используете .appendChild и т. Д. Так что я использовал setTimeout, и это сработало для меня.

    setTimeout(function(){ 
    $("#DB_window").append(... 
    },2000); 
    
    Смежные вопросы