I've been struggling with this for ages. Many of the methods mentioned above work if your iframe is in the same domain as your web page.
However, if your iframe is from another domain, these methods do not work (due to the CORS policy).
Changing the type of the src attribute works, but does not cause the iframe to be redrawn correctly. This can be especially obvious if you embed a Google map on a page using an iframe.
In the end, I found that you need:
1) Keep the original iframe attribute
2) Remove iframe from DOM
3) Add a random query parameter to the end of the original attribute that you saved in step 1.
4) Add the iframe back to the DOM (with a unique source attribute).
//save the source of the iframe minus the unique identifier tempElementSrc = $('#the-iframe').attr('src').substring(0,$('#the-iframe').attr('src').lastIndexOf('&', $('#the-iframe').attr('src'))); //remove the iframe $('#the-iframe').remove(); //readd the iframe with the new source including random query string $('#container-id').append('<iframe width=\"100%\" id=\"iframe-id\" src=\"' + tempElementSrc + '&' + Date.now() + '\">');
source share