I struggled with this for ages. A lot of the methods mentioned above work if your iframe is on the same domain as your web page.
However if your iframe is from another domain these methods don't work (due to CORS policy).
Changing the src attribute kind of works, but doesn't result in a proper redraw of the iframe. This can be particularly evident if you're embedding a Google Map in your page with an iframe.
What I eventually discovered is that you need to:
1) Save the source attribute of the iframe
2) Remove the iframe from the DOM
3) Add a random query parameter to the end of the source attribute you saved in step 1.
4) Add an iframe back to the DOM (with the 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() + '\">');