Ho una pagina Web con un IFrame e un pulsante, una volta premuto il pulsante Ho bisogno di aggiornare l'IFrame. È possibile, se sì, come? Ho cercato e non ho trovato nessuna risposta.Come aggiornare un IFrame usando Javascript?
risposta
var iframe = document.getElementById('youriframe');
iframe.src = iframe.src;
Non funziona in Chrome. Almeno non in Chrome 19 ... – Tarlog
Funziona per me in questa versione di Chrome: 'Versione 24.0.1312.56 Ubuntu 12.04 (24.0.1312.56-0ubuntu0.12.04.1)' –
FYI - C'è attualmente (a partire da gennaio 2013) un bug di progetto Chromium (https://code.google.com/p/chromium/issues/detail?id=172859) che causa l'aggiunta di aggiornamenti iframe alla cronologia del documento. –
Questo dovrebbe aiutare:
document.getElementById('FrameID').contentWindow.location.reload(true);
EDIT: Risolto il nome dell'oggetto come da @ commento di Joro.
Questo non funziona in IE9. Dovresti usare contentWindow invece contentDocument. – gotqn
Grazie per la risposta. Inoltre, se devi caricare positivamente un'altra pagina in un'altra all'interno dell'iframe, invece di 'reload (true)' userai questo: 'document.getElementById ('FrameID'). ContentWindow.location.replace (new_url); ' – racl101
Questo non funziona con iframe con origini diverse (protocollo, nome host o porta). – michelpm
ricevuto questo da here
var f = document.getElementById('iframe1');
f.src = f.src;
Se in iFrame cambia la pagina, questo metodo ha perso la navigazione –
fornito l'iframe viene caricato dallo stesso dominio, si può fare questo, il che rende un po 'più senso:
iframe.contentWindow.location.reload();
Ecco il codice HTML snippet:
<td><iframe name="idFrame" id="idFrame" src="chat.txt" width="468" height="300"></iframe></td>
E il mio Codice di Javascript:
window.onload = function(){
setInterval(function(){
parent.frames['idFrame'].location.href = "chat.txt";
},1000);}
Se si dispone di più iFrame all'interno della pagina, questo script potrebbe essere utile. Sto prendendo atto di un valore specifico nella sorgente iFrame che può essere utilizzato per trovare lo specifico iFrame.
var iframes = document.getElementsByTagName('iframe');
var yourIframe = null
for(var i=0; i < iframes.length ;i++){
var source = iframes[i].attributes.src.nodeValue;
if(source.indexOf('/yourSorce') > -1){
yourIframe = iframes[i];
}
}
var iSource = yourIframe.attributes.src.nodeValue;
yourIframe.src = iSource;
Sostituire "/ yourSource" con il valore necessario.
Works for IE, Mozzila, Chrome
document.getElementById('YOUR IFRAME').contentDocument.location.reload(true);
Grazie !!! Che funziona in Chrome 60.0.3112.101 –
È possibile utilizzare questo:
Js:
function refreshFrame(){
$('#myFrame').attr('src', "http://blablab.com?v=");
}
Html:
`<iframe id="myFrame" src=""></iframe>`
JS Fiddle: https://jsfiddle.net/wpb20vzx/
La domanda non ha nulla a che fare con la popolare _library_ JavaScript chiamata jQuery. –
Cosa farebbe Math.round()? Sembra totalmente inutile qui. –
Ciao, ho usato Math.round() perché alcuni browser possono memorizzare nella cache Url - la pagina così non funziona. –
Se l'URL del tuo iframe non cambia, puoi semplicemente ricrearlo.
Se l'iframe non è della stessa origine (schema di protocollo, nome host e porta), non sarà possibile conoscere l'URL corrente nell'iframe, quindi è necessario uno script nel documento iframe per scambiare messaggi con la sua finestra genitore (la finestra della pagina).
Nel documento iframe:
window.addEventListener('change', function(e) {
if (e.data === 'Please reload yourself') {
var skipCache = true; // true === Shift+F5
window.location.reload(skipCache);
}
}
Nella pagina:
var iframe = document.getElementById('my-iframe');
var targetOrigin = iframe.src; // Use '*' if you don't care
iframe.postMessage('Please reload yourself', targetOrigin);
È possibile utilizzare questo metodo semplice
function reloadFrame(iFrame) {
iFrame.parentNode.replaceChild(iFrame.cloneNode(), iFrame);
}
Ripristino direttamente l'attributo src:
iframe.src = iframe.src;
Ripristino del src con un timestamp per il busting della cache:
iframe.src = iframe.src.split("?")[0] + "?_=" + new Date().getTime();
Cancellazione del src quando l'opzione stringhe di query non è possibile (dati URI):
var wasSrc = iframe.src
iframe.onload = function() {
iframe.onload = undefined;
iframe.src = wasSrc;
}
2017:
Se solo nello stesso dominio:
iframe.contentWindow.location.reload();
funzionerà.
possibile duplicato di [Qual è il modo migliore per ricaricare un iframe utilizzando JavaScript?] (Http://stackoverflow.com/questions/86428/whats-the-best-way-to-reload-an-iframe-using- javascript) – j0k