JavaScriptでiframeを更新する方法について、StackOverflowで多くの回答を見つけました。
例えば:
彼らはうまく働きます。ただし、iframeのページが最近変更された場合、更新ではこの変更は表示されません。指定されたiframeを強制的に更新して、新しいバージョンが表示されるようにする方法はありますか?
JavaScriptでiframeを更新する方法について、StackOverflowで多くの回答を見つけました。
例えば:
彼らはうまく働きます。ただし、iframeのページが最近変更された場合、更新ではこの変更は表示されません。指定されたiframeを強制的に更新して、新しいバージョンが表示されるようにする方法はありますか?
同一生成元の場合、iframe
を使用してページ全体を強制的にリロードできます
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
↪jsFiddleで例を見る
↪MozillaDeveloperwikiの詳細情報
iframe
することもできます。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=...
}
古いブラウザのサポートが重要な場合は、new Date().getTime()
代わりに使用してください。Date.now()
URLを使用してiFrameをリロードしますが、一意のIDを指定します...
var rand = Math.floor((Math.random()*1000000)+1);
var iframe = document.getElementById('youriframe');
iframe.src = "http://www.yourpage.com/yourpage.html?uid="+rand;
あなたが現在持っているコードを見ることができれば、解決策を提供するのは簡単でしょう。
お役に立てば幸いです。
私は何年もの間これに苦労しました。上記の方法の多くは、iframeがWebページと同じドメインにある場合に機能します。
ただし、iframeが別のドメインからのものである場合、これらのメソッドは機能しません(CORSポリシーのため)。
src属性の種類を変更しても機能しますが、iframeが適切に再描画されません。これは、iframeを使用してページにGoogleマップを埋め込んでいる場合に特に顕著になります。
私が最終的に発見したのは、次のことを行う必要があるということです。
1)iframeのソース属性を保存します
2)DOMからiframeを削除します
3)手順1で保存したソース属性の最後にランダムクエリパラメータを追加します。
4)iframeをDOMに追加し直します(一意のソース属性を使用)。
//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() + '\">');