2016-08-22 9 views
6

मुझे एक सैंडबॉक्स किए गए दृश्य में सामग्री प्रदर्शित करने की आवश्यकता है, ज्यादातर एक पूर्ण HTML दस्तावेज़ (<html>...</html>)। मैं src datauri के साथ एक sandboxed iframe का उपयोग कर रहा हूँ।आईई - IFRAMES/डेटा उरी

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 में समर्थित नहीं है ... वहाँ किसी भी समाधान/वैकल्पिक हल है?

उत्तर

2

मेरे समाधान:

  1. एक खाली index.html बनाएं, बस एक ही मूल आइफ्रेम होने के लिए।
  2. पहुँच जावास्क्रिप्ट
  3. के माध्यम से आइफ्रेम अपनी सामग्री बदलें

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

, बस एक खाली आइफ्रेम बनाने और जगह यह सामग्री करना होगा है:

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(); 
} 
संबंधित मुद्दे