I've found many answers on Stack Overflow about how to refresh an iframe with JavaScript.
For example:
Iframe reload button
What's the best way to reload / refresh an iframe using JavaScript?
How to refresh an IFrame using Javascript?
They work fine. However, if the page in the iframe has changed recently, the refresh will not show this change. Is there any way I can force a hard refresh on the designated iframe so that the new version is shown?
Using self. location. reload() will reload the iframe. This works from JavaScript inside the current iFrame.
How do you refresh iframes? reload() will reload the iframe. This works from JavaScript inside the current iFrame.
You can use the location. reload() JavaScript method to reload the current URL. This method functions similarly to the browser's Refresh button. The reload() method is the main method responsible for page reloading.
To alter an iframe element within a variation, click the element in the Visual Editor. When the element is selected, a menu will appear that shows the actions you can take. Edit Element... > Edit iFrame: You can modify the iframe source ( src ) attribute when using Optimizely as an AB testing tool.
If the iframe
is same-origin, you can force a full page reload using
iframe.contentWindow.location.reload(true);//The argument "true" will force all loaded resources, such as images, to be re-checked for expiry at the server
↪ View an example at jsFiddle
↪ More information at the Mozilla Developer wiki
iframe
, you can also instruct the browser not to cache it in the first place.if(iframe.src.indexOf('timestamp') > -1){ // Check if we still have a timestamp in the URL from a previous refresh
iframe.src = iframe.src.replace(/timestamp=[^&]+/, 'timestamp=' + Date.now()); // And if so, replace it instead of appending so the URL doesn't grow too long.
}else{ // Else we will append the timestamp
iframe.src += (iframe.src.indexOf('?') > -1 ? "&" : "?") + 'timestamp=' + Date.now();// If the URL contains a ?, append ×tamp=...; otherwise, append ?timestamp=...
}
Use new Date().getTime()
instead of Date.now()
if support for older browsers is important.
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