Os ouvintes de eventos quando a carga está completa iframe

Muitas vezes enfrentam tal cenário um:
incorporada em outra página quando o iframe. Se a resposta das páginas de carga iframe mais rápido, talvez não nos sentimos fora do carregamento da página sincronia, mas imagine, na página iframe resposta se necessidade ser incorporado em um processo muito lento, haverá Que tipo de fenômeno? Em seguida, haverá toda a página tem de carregamento acabado, mas, ao elemento iframe, haverá branco até que a página incorporado carregamento acabado, este espaço vai apresentar a página recém carregado.

Pode-se imaginar que uma página em branco se prolongada, para o espectador, ele vai dizer nada.
Se incorporado na página não é o carregamento terminado, para dar uma mensagem carregado. Tais como: "Página Loading" e similares, penso que esta página para os usuários a navegar, não será mais sofrimento, mas também para desfrutar de um visual.

Para conseguir este efeito, geralmente segue o princípio da transformação.

  • área de carga iframe dá mensagem amigável

  • Quando o iframe tem carregamento acabado, mensagem clara, e deixar que o iframe é exibido

Estes são relativamente fáceis, mas a questão chave agora é como ouvir páginas dentro do elemento iframe já está carregado.
A chave para este problema, em geral, será dividida em dois casos para discutir soluções.

  • Nested mesmo domínio. O melhor é chamar métodos a página pai subpages

  • Se ele é exótico, mas sub-páginas não podem ser modificados, então: No Firefox / Opera / Safari, você pode usar iframe onLoad evento diretamente, mas no IE, pode ser medido por um temporizador document.readyState sub-páginas, ou calculado usando o iframe onreadystatechange evento em resposta a este evento

nidificação simpátrico

parent.html

function ifrmLoaded() {
    // code here
}
sub.html

window.onload = function() {
    window.parent.ifrmLoaded();
}

páginas aninhadas não podem ser modificados ou ninho exótico

  • Firefox / Opera / Safari diretamente usando iframe onLoad evento

document.getElementById('ifrm').onload = function() {
    //here doc
}
  • No IE, registrado iframe onreadystatechange evento

var oFrm = document.getElementById('ifrm');
oFrm.onreadystatechange = function() {
    if (this.readyState && this.readyState == 'complete') {
        onComplete();
    }
}

abordagem compatível Firefox / Opera / Safari / IE é

var oFrm = document.getElementById('ifrm');
oFrm.onload = oFrm.onreadystatechange = function() {
     if (this.readyState && this.readyState != 'complete') return;
     else {
         onComplete();
     }
}

http: //hqlong.com/2009/02/620 ...

Acho que você gosta

Origin www.cnblogs.com/jlfw/p/12535120.html
Recomendado
Clasificación