我们动态创建<iframe>
(例如,对于富文本编辑器或调试窗口)并将html注入src
。多年来,我们使用javascript:
网址作为与this answer类似的src
,直到我们遇到多个独立iframe的同源政策问题。
我们当前的解决方案是为包含html的blob创建一个对象URL:
var iframe = document.createElement('iframe')
, html = '<h1>it works!</h1>'
, blob = new Blob([html], {type: 'text/html'})
, url = URL.createObjectURL(blob);
iframe.src = url;
document.querySelector('body').appendChild(iframe);
&#13;
这适用于Chrome和Firefox,但不适用于IE11(对于URL
或Blob
未定义的浏览器,我们会回退到javascript:
解决方案。 IE11引发SCRIPT5
: Access is denied
。
我们是否滥用了API? IE有特殊的API吗?一个已知的解决方法?
答案 0 :(得分:3)
不幸的是IE does not support DATA URI's *有一些警告。我有同样的问题,但嵌入式标签中有PDF。
看起来您可以使用msSaveOrOpenblob让IE打开您的blob文件
答案 1 :(得分:0)
IE 11不支持所有的数据URI。
它仅支持图像和链接资源,例如CSS或JS。请注意,不支持HTML文件。