Se você tentou todas as outras sugestões e não conseguiu que nenhuma delas funcionasse (como eu não consegui), aqui está algo que você pode tentar que pode 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, decidi tentar economizar algum tempo com o RWD e os testes entre navegadores. Eu queria criar uma página rápida que abrigasse um monte de iframes, organizados em grupos que eu mostraria / ocultaria à vontade. Logicamente, você deseja atualizar com facilidade e rapidez qualquer quadro.
Devo observar que o projeto no qual estou trabalhando atualmente, aquele em uso neste banco de ensaios, é um site de uma página com locais indexados (por exemplo, index.html # home). Isso pode ter algo a ver com o motivo pelo qual não consegui obter nenhuma das outras soluções para atualizar meu quadro específico.
Dito isto, sei que não é a coisa mais limpa do mundo, mas funciona para meus propósitos. Espero que isso ajude alguém. Agora, se eu conseguisse descobrir como impedir o iframe de rolar a página pai toda vez que houver animação dentro do iframe ...
Edição:
percebi que isso não "atualiza" o iframe como eu esperava que fosse. Ele recarregará a fonte inicial do iframe. Ainda não consigo descobrir por que não consegui fazer funcionar nenhuma das outras opções.
ATUALIZAÇÃO:
O motivo pelo qual não consegui usar nenhum dos outros métodos funcionou é porque os estava testando no Chrome, e o Chrome não permitirá que você acesse o conteúdo de um iframe (Explicação: É provável que versões futuras do Chrome suportem o conteúdo / contentDocument quando o iFrame carrega um arquivo html local a partir do arquivo html local? ) se ele não se originar do mesmo local (até onde eu entendi). Após testes adicionais, também não consigo acessar o contentWindow no FF.
JS ALTERADO
$('.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 não é limpa? Parece ser a única solução que funciona em todos os navegadores e em vários domínios