【问题标题】:iframe not loading correctly in IE 8iframe 无法在 IE 8 中正确加载
【发布时间】:2016-05-25 09:22:12
【问题描述】:

我通过给它一个 src 来创建一个带有 jquery 的 iframe,但它在 IE8 中不起作用。

$("#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" url,不请求页面中的 css 和 js 引用。所以 iframe 没有正确渲染,它只带有数据,因此没有样式。我们如何在 IE 中请求 iframe。

【问题讨论】:

    标签: jquery iframe internet-explorer-8 ie8-compatibility-mode


    【解决方案1】:

    Iframe 请求在第一种情况下在 IE 中被中止。所以我才知道,当您尝试在关闭 DOM 元素之前修改 DOM 元素时,IE 会执行此操作。这意味着如果您尝试将一个子元素附加到另一个元素并且另一个元素(如document.body)仍在加载,您将收到此错误。如果您使用 .appendChild 等,则会发生这种情况。 所以我使用了setTimeout,它对我有用。

    setTimeout(function(){
    $("#DB_window").append(...
    },2000);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-29
      • 1970-01-01
      • 2015-03-06
      • 1970-01-01
      • 2013-10-19
      相关资源
      最近更新 更多