在 iframe 中显示 blob 在 IE 中失败

Posted

技术标签:

【中文标题】在 iframe 中显示 blob 在 IE 中失败【英文标题】:Show blob in iframe fails in IE 【发布时间】:2013-12-20 06:46:57 【问题描述】:

所以,要点是,我正在将上传的文件下载到数据库中,以便在 iframe 中显示它们,至少其中的大部分

这是代码:

var ancho = $(window).width() * 0.90;
var alto = $(window).height() * 0.90;
$("#DialogoImagen").dialog(
    show: 
        effect: 'blind'
    ,
    hide: 
        effect: 'blind'
    ,
    width: ancho,
    height: alto,
    resizable: true,
    draggable: true,
    title: '',
    modal: true,
    position:  my: "center", at: "top", of: window 
);
$("#DialogoImagen").children().remove();
var iframe = $("<iframe width='98%' src='" + window.URL.createObjectURL(archivo) + "'/>");
$("#DialogoImagen").append(iframe);

它与另一个世界无关,我将 iframe src 设置为 window.URL.createObjectURL(blob),与 Chrome、FF、Opera 完美配合,但是 IE,即使是 11,什么也没有显示,不知道该怎么做解决它?

【问题讨论】:

archivo 到底是什么?您想通过将 iframe src 设置为它来实现什么? archivo 将是我从调用服务器时收到的文件 blob,使用 createObjectUrl 我会生成一个直接 url 来打开文件 你找到解决办法了吗?我有同样的问题 【参考方案1】:

取决于您使用的内容类型,但由于它位于IFRAME 中,因此可以肯定的是 IE 不支持该内容类型的数据 URI。 ref: caniuse

根据上面的参考,IE支持图片、CSS和脚本文件,但 html。我可以根据个人经验验证 HTML 数据 URL,例如

data:text/html, <h1>Hi</h1><p>I'm a data URL

不要在 IE10 中工作。

【讨论】:

嗯,到目前为止,我只显示文本、图像和 pdf,其余部分直接下载给用户

以上是关于在 iframe 中显示 blob 在 IE 中失败的主要内容,如果未能解决你的问题,请参考以下文章

IE11 中的 iframe 内容仅显示白屏

在 IE10 iframe 中强制 IE8 仿真

如何让iframe中页面全屏显示

PHP 标头重定向不会在 IE 中重新加载 <iframe>

iframe 中的 iframe [IE]

iframe在谷歌浏览器中与在ie、火狐中显示不一致问题!