Si probaste todas las otras sugerencias y no pudiste hacer que ninguna de ellas funcionara (como yo no pude), aquí hay algo que puedes probar que puede ser útil.
HTML
<a class="refresh-this-frame" rel="#iframe-id-0">Refresh</a>
<iframe src="" id="iframe-id-0"></iframe>
JS
$('.refresh-this-frame').click(function() {
var thisIframe = $(this).attr('rel');
var currentState = $(thisIframe).attr('src');
function removeSrc() {
$(thisIframe).attr('src', '');
}
setTimeout (removeSrc, 100);
function replaceSrc() {
$(thisIframe).attr('src', currentState);
}
setTimeout (replaceSrc, 200);
});
Inicialmente me propuse intentar ahorrar algo de tiempo con RWD y pruebas de navegador cruzado. Quería crear una página rápida que albergara un montón de iframes, organizados en grupos que mostraría / ocultaría a voluntad. Lógicamente, desearía poder actualizar fácil y rápidamente cualquier marco dado.
Debo señalar que el proyecto en el que estoy trabajando actualmente, el que se usa en este banco de pruebas, es un sitio de una página con ubicaciones indexadas (por ejemplo, index.html # home). Eso puede haber tenido algo que ver con por qué no pude obtener ninguna de las otras soluciones para actualizar mi marco particular.
Dicho esto, sé que no es la cosa más limpia del mundo, pero funciona para mis propósitos. Espero que esto ayude a alguien. Ahora, si solo pudiera descubrir cómo evitar que el iframe se desplace por la página principal cada vez que hay animación dentro del iframe ...
EDITAR:
Me di cuenta de que esto no "actualiza" el iframe como esperaba. Sin embargo, volverá a cargar la fuente inicial del iframe. Todavía no puedo entender por qué no pude hacer funcionar ninguna de las otras opciones ...
ACTUALIZACIÓN:
La razón por la que no pude hacer funcionar ninguno de los otros métodos es porque los estaba probando en Chrome, y Chrome no le permitirá acceder al contenido de un iframe (Explicación: ¿Es probable que las futuras versiones de Chrome admitan contentWindow? / contentDocument cuando iFrame carga un archivo html local desde un archivo html local? ) si no se origina en la misma ubicación (por lo que yo entiendo). Luego de más pruebas, tampoco puedo acceder a contentWindow en FF.
JS MODIFICADO
$('.refresh-this-frame').click(function() {
var targetID = $(this).attr('rel');
var targetSrc = $(targetID).attr('src');
var cleanID = targetID.replace("#","");
var chromeTest = ( navigator.userAgent.match(/Chrome/g) ? true : false );
var FFTest = ( navigator.userAgent.match(/Firefox/g) ? true : false );
if (chromeTest == true) {
function removeSrc() {
$(targetID).attr('src', '');
}
setTimeout (removeSrc, 100);
function replaceSrc() {
$(targetID).attr('src', targetSrc);
}
setTimeout (replaceSrc, 200);
}
if (FFTest == true) {
function removeSrc() {
$(targetID).attr('src', '');
}
setTimeout (removeSrc, 100);
function replaceSrc() {
$(targetID).attr('src', targetSrc);
}
setTimeout (replaceSrc, 200);
}
if (chromeTest == false && FFTest == false) {
var targetLoc = (document.getElementById(cleanID).contentWindow.location).toString();
function removeSrc() {
$(targetID).attr('src', '');
}
setTimeout (removeSrc, 100);
function replaceSrc2() {
$(targetID).attr('src', targetLoc);
}
setTimeout (replaceSrc2, 200);
}
});
src
atributo en sí mismo no está limpio? Parece ser la única solución que funciona en todos los navegadores y dominios