2016-08-22 17 views
6

Tôi cần hiển thị nội dung trong chế độ xem hộp cát, chủ yếu là tài liệu html đầy đủ (<html>...</html>). Tôi đang sử dụng iframe có hộp cát với src datauri.IE - IFRAMES/Dữ liệu Uri

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);

Thật không may, đó là không được hỗ trợ trong Internet Explorer ... Có bất kỳ giải pháp/cách giải quyết?

Trả lời

2

Giải pháp của tôi:

  1. Tạo một trống index.html, chỉ vì có một iframe cùng một nguồn gốc.
  2. Truy cập iframe qua javascript
  3. Thay thế nội dung của nó

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>

0

Đơn giản chỉ cần tạo ra một iframe trống và thay thế nó nội dung sẽ làm:

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(); 
} 
Các vấn đề liên quan