IE - IFRAMES / 日期 Uri
IE - IFRAMES / Data Uri
我需要在沙盒视图中显示内容,主要是完整的 html 文档 (<html>...</html>
)。我正在使用带 src datauri 的沙盒 iframe。
var
iframe = document.createElement('iframe'),
content = '<html><head></head><body><h1>Hello</h1></body></html>'
;
iframe.sandbox = '';
iframe.src = 'data:text/html;charset=utf-8,' + content;
document.body.appendChild(iframe);
很遗憾,Internet Explorer 不支持...
有没有solution/workaround?
我的解决方案:
- 创建一个空的
index.html
,只是为了具有相同的来源 iframe。
- 通过 javascript
访问 iframe
- 替换其内容
function ReplaceIframeContentCtrl() {
var iframe = document.getElementById('test');
var content = "<html><head></head><body><h1>Hello</h1></body></html>";
iframe.contentWindow.document.open();
iframe.contentWindow.document.write(content);
iframe.contentWindow.document.close();
}
document.addEventListener('DOMContentLoaded', ReplaceIframeContentCtrl);
<iframe id="test" src="/index.html"></iframe>
只需创建一个空的 iframe 并替换它的内容即可:
function insertIframeHtml(parent, html) {
const jparent=$(parent).empty();
const iframe=$('<iframe></iframe>').appendTo(jparent)[0];
iframe.contentWindow.document.open();
iframe.contentWindow.document.write(html);
iframe.contentWindow.document.close();
}
我需要在沙盒视图中显示内容,主要是完整的 html 文档 (<html>...</html>
)。我正在使用带 src datauri 的沙盒 iframe。
var
iframe = document.createElement('iframe'),
content = '<html><head></head><body><h1>Hello</h1></body></html>'
;
iframe.sandbox = '';
iframe.src = 'data:text/html;charset=utf-8,' + content;
document.body.appendChild(iframe);
很遗憾,Internet Explorer 不支持... 有没有solution/workaround?
我的解决方案:
- 创建一个空的
index.html
,只是为了具有相同的来源 iframe。 - 通过 javascript 访问 iframe
- 替换其内容
function ReplaceIframeContentCtrl() {
var iframe = document.getElementById('test');
var content = "<html><head></head><body><h1>Hello</h1></body></html>";
iframe.contentWindow.document.open();
iframe.contentWindow.document.write(content);
iframe.contentWindow.document.close();
}
document.addEventListener('DOMContentLoaded', ReplaceIframeContentCtrl);
<iframe id="test" src="/index.html"></iframe>
只需创建一个空的 iframe 并替换它的内容即可:
function insertIframeHtml(parent, html) {
const jparent=$(parent).empty();
const iframe=$('<iframe></iframe>').appendTo(jparent)[0];
iframe.contentWindow.document.open();
iframe.contentWindow.document.write(html);
iframe.contentWindow.document.close();
}