javascript - propuestos - servicios de gmail
Cómo actualizar un IFrame utilizando Javascript? (12)
Tengo una página web con un iframe y un botón, una vez que se presiona el botón, necesito que el iframe se actualice. ¿Es esto posible? Si es así, ¿cómo? Busqué y no pude encontrar ninguna respuesta.
2017:
Si está en el mismo dominio solo:
iframe.contentWindow.location.reload();
trabajará.
Aquí está el fragmento de HTML:
<td><iframe name="idFrame" id="idFrame" src="chat.txt" width="468" height="300"></iframe></td>
Y mi código Javascript:
window.onload = function(){
setInterval(function(){
parent.frames[''idFrame''].location.href = "chat.txt";
},1000);}
Esto debería ayudar:
document.getElementById(''FrameID'').contentWindow.location.reload(true);
EDITAR: corrigió el nombre del objeto según el comentario de @ Joro.
Funciona para IE, Mozzila, Chrome
document.getElementById(''YOUR IFRAME'').contentDocument.location.reload(true);
Puedes usar este método simple
function reloadFrame(iFrame) {
iFrame.parentNode.replaceChild(iFrame.cloneNode(), iFrame);
}
Puedes usar esto:
Js:
function refreshFrame(){
$(''#myFrame'').attr(''src'', "http://blablab.com?v=");
}
Html:
`<iframe id="myFrame" src=""></iframe>`
JS Fiddle: https://jsfiddle.net/wpb20vzx/
Restablecer el atributo src directamente:
iframe.src = iframe.src;
Restablecer el src con una marca de tiempo para el almacenamiento en memoria caché:
iframe.src = iframe.src.split("?")[0] + "?_=" + new Date().getTime();
Borrando el src cuando la opción de cadenas de consulta no es posible (URI de datos):
var wasSrc = iframe.src
iframe.onload = function() {
iframe.onload = undefined;
iframe.src = wasSrc;
}
Si la URL de su iframe no cambia, puede recrearla.
Si su iframe no es del mismo origen (esquema de protocolo, nombre de host y puerto), no podrá conocer la URL actual en el iframe, por lo que necesitará una secuencia de comandos en el documento iframe para intercambiar mensajes con su ventana principal ( la ventana de la página).
En el documento iframe:
window.addEventListener(''change'', function(e) {
if (e.data === ''Please reload yourself'') {
var skipCache = true; // true === Shift+F5
window.location.reload(skipCache);
}
}
En tu página:
var iframe = document.getElementById(''my-iframe'');
var targetOrigin = iframe.src; // Use ''*'' if you don''t care
iframe.postMessage(''Please reload yourself'', targetOrigin);
Si tiene varios iFrames dentro de la página, este script podría ser útil. Supongo que hay un valor específico en la fuente de iFrame que se puede usar para encontrar el iFrame específico.
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;
Reemplace "/ yourSource" con el valor que necesita.
Tengo esto de here
var f = document.getElementById(''iframe1'');
f.src = f.src;
siempre que el iframe se cargue desde el mismo dominio, puede hacerlo, lo que tiene un poco más de sentido:
iframe.contentWindow.location.reload();
var iframe = document.getElementById(''youriframe'');
iframe.src = iframe.src;