views:

70

answers:

3
+1  Q: 

Refresh an iframe

How to refresh an iframe? For example:

<iframe src="http://google.com"&gt;&lt;/iframe&gt;

I click on "Videos" in this iframe ,then click on a button to refresh the iframe and I want when the iframe is refreshed ,to be on that "Videos" page.

+6  A: 

You can't refresh the inner document in there due to the single origin policy.

Have you tried changing the iframe's src property and adding a random GET string to force a reload?

This should work:

<iframe id="myiframe" src="http://google.com"&gt;&lt;/iframe&gt;

document.getElementById("myiframe").src = "http://www.google.com?"+(+new Date());
Pekka
doesn't the <iframe>-Tag require an ID?
poeschlorn
@poeschlorn of course, you're right. Cheers @Andy
Pekka
+1 - I don't think you need the random string. Just in case you do, I edited your post to append `+new Date()` which will cast the current time to a number. Not random, but unique if you're not refreshing several times per millisecond :-)
Andy E
@Andy perfect. Cheers!
Pekka
`Have you tried changing the iframe's src property` ,yes ,but how to get on which page is the iframe?
lam3r4370
@lam by querying the `src` property? However, that is not possible if the user has navigated to another location in the iframe. In that case, AFAIK, there is no way of refreshing the iframe without refreshing the parent document.
Pekka
A: 

I think just by updating the hre/src will work. So on button click do as follows:

window.frames.iframeName.location.href = "new url"

Ankit Jain
+1  A: 

You can only reload the current iframe href if it's for the same domain (single origin policy) with following code:

<iframe id="myIframe" src="http://yourdomain.com"&gt;&lt;/iframe&gt;

document.getElementById('myIframe').contentWindow.location.reload(true);

or get the current href

var currentHref = document.getElementById('myIframe').contentWindow.location.href;
K.Rijpstra