Is it possible using jQuery to create an <iframe>
element and append html content to it without having src
attribute specified?
The problem is I need to create an iframe
and I already have its content (I get it as AJAX response). Unfortunately, I can't specify the URL I get response from as src
attribute. I'd like to do something like:
$('<iframe id="someId"/>').append(response).appendTo("#someDiv");
However, it's also possible to use a really simple jQuery to access the elements within the iFrame. Check it out below: $(document). ready(function(){ var iFrameDOM = $("iframe#frameID").
Answer: Use the jQuery contents() method You can use the jQuery contents() method in combination with the find() , val() and html() methods to insert text or HTML inside an iframe body.
Approach 1: For adding additional div's in an iframe, you need to use a wrapper div, that wraps the contents of your intended div and the iframe into one unit. This way you can display the contents of your div along with the iframe embedding to the document/webpage.
Try this:
$('<iframe id="someId"/>').appendTo('#someDiv')
.contents().find('body').append(response);
Why use an iframe then? Stick it all in another container. I can't think of any advantage of the iframe except that you can load a page from a src attribute.
I suppose if you need an iframe for some other purpose, like you load in a page but you want to replace it with the ajax response, you could use jQuery to swap out the iframe for a div and back again as needed.
The other possibility is that instead of ajax, modify your ajax php script to output the full page that you want in the iframe. Then use jQuery to change up the address of the requested page in the iframe with new parameters to display updated content.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With