By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,703 Members | 1,116 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,703 IT Pros & Developers. It's quick & easy.

Iframe dynamic create and populate immediately

P: n/a
Hi i'm bothering with such problem... I must dynamic create an Iframe, and
then put som raw HTML into it. But I can't.

When I create iframe, I can't access its properties.

Here's the coe snipplet:

//*************************************
//*************************************

function doTheIframe(nazwa, width, height) {
ifrm = document.createElement("iframe");
ifrm.setAttribute("name", nazwa);
ifrm.setAttribute("id", nazwa);
ifrm.setAttribute("src", "");
ifrm.style.width.value = width+"px";
ifrm.style.height.value = height+"px";
document.body.appendChild(ifrm);
}

function main() {
doTheIframe('smallframe',100,100);

document.getElementById('smallframe').contentWindo w.document.body.innerHTML=
"TEST";
}

<a onclick="main()">Tratatata</a>

//*************************************
//*************************************

When I click the link, iframe is created but not pupulated.
When I click for the second time, second frame is created and the first one
is populated.

I want to populate the iframe immediately.
How to do this?

Regards,
Templar


Jul 20 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a


Templar wrote:
Hi i'm bothering with such problem... I must dynamic create an Iframe, and
then put som raw HTML into it. But I can't.


The following works for me with Netscape 7.1, IE6. Should work with
Netscape 6/7 and IE5/5.5 too.
I can't get it to work with Opera but I think I have filed a bug on that
some while ago. You might want to try to load a dummy HTML page first to
be able to script the document for Opera.

<html>
<head>
<title>creating an iframe element and document.writing content to the
iframe window</title>
<script type="text/javascript">
function createIframe (iframeName, width, height) {
var iframe;
if (document.createElement && (iframe =
document.createElement('iframe'))) {
iframe.name = iframe.id = iframeName;
iframe.width = width;
iframe.height = height;
iframe.src = 'about:blank';
document.body.appendChild(iframe);
}
return iframe;
}

function test () {
var iframe = createIframe ('iframe0', 300, 300);
if (iframe) {
var iframeDoc;
if (iframe.contentDocument) {
iframeDoc = iframe.contentDocument;
}
else if (iframe.contentWindow) {
iframeDoc = iframe.contentWindow.document;
}
else if (window.frames[iframe.name]) {
iframeDoc = window.frames[iframe.name].document;
}
if (iframeDoc) {
iframeDoc.open();
iframeDoc.write(
'<html><body><p>Kibology for all.<\/p><\/body><\/html>');
iframeDoc.close();
}
}
}

window.onload = function (evt) {
test();
}
</script>
</head>
<body>
<h1>Iframe creation test</h1>
</body>
</html>
--

Martin Honnen
http://JavaScript.FAQTs.com/

Jul 20 '05 #2

P: n/a
oh my goodness!! it works!!
Thanks a million!

But how?

Regards,
Templar
Jul 20 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.