Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Adding iframe and paragraph elements dynamically

I want to add iframe element to the page and then add <p> element inside that iframe.
I tried this:

var iframe = document.createElement('iframe');
iframe.frameBorder = 1;
iframe.width = "500px";
iframe.height = "250px";
iframe.id = "iframe";

var p = document.createElement('p');
iframe.appendChild(p);
document.getElementById("div").appendChild(iframe); //this is a div  that I have in body.

The iframe is added to the page but P is not added into iframe(iframe's body)

like image 584
shivesh Avatar asked Jun 30 '26 16:06

shivesh


1 Answers

In modern browsers, you use the contentDocument attribute. In others, you have to use contentWindow.document. You create the paragraph using the iframe's document, in the onload event. So:

var iframe = document.createElement('iframe');
iframe.frameBorder = 1;
iframe.width = "500px";
iframe.height = "250px";
iframe.id = "iframe";

iframe.onload = function()
{
    var doc = iframe.contentDocument || iframe.contentWindow.document;
    var p = doc.createElement('p');
    p.textContent = "Paragraph in iframe";
    doc.body.appendChild(p);
};

document.getElementById("div").appendChild(iframe); //this is a div  that I have in body.

I made a jsfiddle demo.

Also, I recommend you don't use ids that are the same as the tag name. It could become confusing.

like image 107
Matthew Flaschen Avatar answered Jul 02 '26 06:07

Matthew Flaschen



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!