2016-08-22 24 views
6

İçeriği çoğunlukla dolu bir html belgesini (<html>...</html>) korumalı bir görünümde görüntülemem gerekiyor. src datauri ile korumalı bir iframe kullanıyorum. Herhangi çözüm/çözüm Maalesef Internet Explorer desteklenmezIE - IFRAMES/Data 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);

... var mı?

cevap

2

Çözümümün:

  1. sadece aynı kökenli iframe sahibi olmak için, bir boş index.html oluşturun.
  2. Erişim javascript
  3. aracılığıyla iframe içeriği değiştirin

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

Basitçe boş iframe oluşturma ve içerik yapacağız oluyor değiştirilmesi:

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