我通过给它一个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。
答案 0 :(得分:1)
iframe请求在第一种情况下在IE中被中止。所以当我尝试在关闭之前修改DOM元素时,我开始知道IE会这样做。这意味着如果您尝试将子元素附加到另一个元素并且其他元素(如document.body
)仍在加载,则会出现此错误。如果您使用.appendChild
等,则会发生这种情况。
所以我使用了setTimeout
,它对我有用。
setTimeout(function(){
$("#DB_window").append(...
},2000);