Click to See Complete Forum and Search --> : iframe


Beach Bum
12-05-2002, 11:06 PM
if you create an iframe, is there a way to change the src - dynamically change it to a different htm document?

i have tried the obvious - document.iframeName.src and everything else i can think of.

i am trying to swap the contents with a button.

Rick Bull
12-06-2002, 04:46 AM
I think you need to use the frames array:


HTML:
<iframe name="iframe1" src="whatever.htm"></iframe>

JS:
document.frames['frame1'].src = 'whereever.htm';


I think that's right; going from memory.

Beach Bum
12-06-2002, 10:33 AM
Rick -

In your example above i changed the js to:

document.frames['iframe1'].src = 'whereever.htm';

to match the names (caught that because it generated an error).

however, still no luck. seems to do nothing for me (src did not change - but no error generated). i will poke around some more with it. i am not familiar with the frames array.

any additional thoughts?

Zach Elfers
12-06-2002, 10:44 AM
This might work. The user will have to have JavaScript though.

Instead of <iframe src="whatever.html"> do:

<script language="JavaScript" type="text/JavaScript">

document.write("<iframe src=\"");
function pageOne() {
document.write("page1.html");
}

function pageTwo() {
document.write("page2.html");
}
document.write("\">");

</script>
<body onLoad="pageOne();">
<input type="button" value="page1.html" onClick="page2.html;">

I don't know if that will work, but maybe it will. You might to do some tweaking of the code.

Beach Bum
12-06-2002, 11:11 AM
got it:

document.iframe1.location.replace("xxx.htm");

thanks for all the input everyone.

but i am still curious about the frames array. must do some research.

Rick Bull
12-06-2002, 11:14 AM
Heh, I was just about to post this:


document.frames['iframe1'].location.href

Beach Bum
12-06-2002, 11:20 AM
Rick -

either what you posted or what i posted works great with IE6. thanks for coming back.

but on further testing, neither solution works with NS7.

this cross-browser stuff is going to drive me nuts.

Zach Elfers
12-06-2002, 11:23 AM
Hopefully, someday, all the browsers will be as good as IE.:D :D :D

Rick Bull
12-06-2002, 01:17 PM
IE the best, hmm that's a matter of opinion :p

To get this to work in NS you probably need to use window.frames instead of document.

Beach Bum
12-06-2002, 01:29 PM
can't get window. rather than document. to work in NS either.

but thanks for the idea.

jeffmott
12-06-2002, 06:45 PM
Using window instead of document worked in both browsers for me ( tested in IE6 and NS7 ).

document.frames['iframe1'].location.href = 'some-page.html'

Beach Bum
12-06-2002, 08:12 PM
thanks for coming back at me again. window. is working for me now as well in both browsers. i must have messed something up on my other test.

thanks to all who pitched in. don't you love a happy ending!