2009-03-06 14 views
32

क्या मैं प्लेसहोल्डर के रूप में एक खाली आइफ्रेम बना सकता हूं ताकि बाद में एचटीएमएल डालने के लिए?आईफ्रेम के अंदर एचटीएमएल डालने (जावास्क्रिप्ट का उपयोग करके)

Otherwords में,

मैं इसे कैसे में एचटीएमएल डालूँ मैं एक आईडी के साथ एक खाली आइफ्रेम है लगता है,?

मैं jquery का उपयोग कर रहा हूं, अगर इससे यह आसान हो जाता है।

उत्तर

30

आप jQuery भी बिना यह कर सकते हैं: डाला HTML से

var iframe = document.getElementById('iframeID'); 
iframe = iframe.contentWindow || (iframe.contentDocument.document || iframe.contentDocument); 

iframe.document.open(); 
iframe.document.write('Hello World!'); 
iframe.document.close(); 

jQuery के एचटीएमएल स्ट्रिप्स शरीर, एचटीएमएल और सिर टैग।

+0

यह सही उत्तर है। ''। ध्यान दें कि iframe को अपने मूल दस्तावेज़ में डाला जाना चाहिए। –

+0

AJAX अनुरोधों से "document.write" स्क्रिप्ट लोड करते समय एक आकर्षण की तरह काम करना –

+2

'iframe = iframe.contentWindow || (iframe.contentDocument.document || iframe.contentDocument); ' – Nildarar

36

इस पृष्ठ का स्रोत देखें: http://mg.to/test/dynaframe.html ऐसा लगता है कि आप वास्तव में क्या करना चाहते हैं।

$(function() { 
    var $frame = $('<iframe style="width:200px; height:100px;">'); 
    $('body').html($frame); 
    setTimeout(function() { 
     var doc = $frame[0].contentWindow.document; 
     var $body = $('body',doc); 
     $body.html('<h1>Test</h1>'); 
    }, 1); 
}); 
+1

यह केवल प्रतियां 'body' तत्व, जब आप' head' तत्व, या यहाँ तक कि विशेषताओं की आवश्यकता हो सकती 'html' तत्व का। – Flimm

1

हाँ मुझे पता है कि संभव है, लेकिन मुख्य समस्या यह है कि हम एक फ्रेम नहीं संभाल सकता है मैं पहले से ही कुछ दूसरी बात लोड होते ही यह बाहर से है।

$(function() { 
     var $frame = $('<iframe style="width:200px; height:100px;">'); 
     $('body').html($frame); 
     setTimeout(function() { 
       var doc = $frame[0].contentWindow.document; 
       var $body = $('body',doc); 
       $body.html('<h1>Test</h1>'); 
     }, 1); 
}); 

लेकिन तब इसके बाहर हिट करने के लिए असंभव है कि अगर हम के रूप में

<iframe src="http:/www.hamrobrt.com"> 
<---Your Script to put as you like---> 

शुरू कि।

8

नहीं, यह नहीं है। आप इस तरह स्क्रिप्ट को संशोधित होगा:

$(function() { 
    var $frame = $('iframe'); 
    setTimeout(function() { 
      var doc = $frame[0].contentWindow.document; 
      var $body = $('body',doc); 
      $body.html('<h1>Test</h1>'); 
    }, 1); 
}); 
2
iframeElementContainer = document.getElementById('BOX_IFRAME').contentDocument; 
iframeElementContainer.open(); 
iframeElementContainer.writeln("<html><body>hello</body></html>"); 
iframeElementContainer.close(); 
0

मैं एक ही समस्या है, मैं कहाँ iframe की src विशेषता के बिना डेटाबेस से गतिशील रूप से iframe में एचटीएमएल कोड स्निपेट को दिखाने के लिए है और मैं कोड

निम्नलिखित

मुझे आशा है कि यह किसी को मदद मिलेगी के साथ एक ही समस्या तय मेरे पास एक ही आवश्यकता है।

jsfiddle example here

HTML:

<iframe src="" frameborder="0" class="iframe"></iframe> 
<iframe src="" frameborder="0" class="iframe"></iframe> 
<iframe src="" frameborder="0" class="iframe"></iframe> 
<iframe src="" frameborder="0" class="iframe"></iframe> 

जे एस

<script> 
var doc,$body; 
var txt = Array(
      '<style>body{background-color:grey} h1{background-color:red;font-weight:900}</style><h1>Cool!!! this is text for</h1><p>First Iframe</p>', 
      '<style>body{background-color:pink}h1{background-color:green;font-weight:200}</style><h1>Cool This is Text for</h1><p> second Iframe', 
      '<style>body{background-color:yellow}h1{font-weight:400}</style><h1>Cool..... This is text FOR : </h1> <div>3rd Iframe</div>', 
      '<style>body{background-color:blue} h1{font-weight:400}</style><h1>Cool This is text for Fourth iframe</h1>' 
      ); 
$('.iframe').each(function(index,value){ 
    doc = $('iframe')[index].contentWindow.document; 
     $body = $('body',doc); 
     $body.html(txt[index]); 
}); 
</script> 
संबंधित मुद्दे