2013-08-21 13 views
7

Mam iframe umieszczony w korpusie moja strona jest tak:wskaźnik Ładowanie pozostaje Firefox po iframe zakończeniu ładowania

<iframe src="about:blank" onload="this.contentWindow.document.write('some text')"> 

To działa wystarczająco dobrze, zdarzenie onload zastępuje zawartość iframe z „tekstem” i to wszystko .

ALE w przeglądarce Firefox powoduje to "wskaźnik ładowania" obracającego się koła, który pokazuje, że strona jest ładowana i nigdy nie znika. Do elementu iframe wstawiany jest tylko tekst, więc nie ma innych treści, które czekają na załadowanie. Kiedy usuwam element iframe ze strony, usuwa on problem, więc wiem, że jest to wspomniany element iframe, który go powoduje.

Działa poprawnie w IE i Chrome.

Teraz mogę zrobić coś takiego:

<iframe src="about:blank" onload="this.contentWindow.document.write('some text'); t.contentWindow.stop();"> 

które rozwiązuje ten problem w Firefoksie, ale zapobiega żadnych obrazów w iframe ładowanie (i nie używać żadnych w przykładzie wstawić tekst, ale zostaną dodane później).

Więc, jak mam to naprawić?

Odpowiedz

1

Dlaczego uruchamiasz zapis w contentWindow, używając zdarzenia load tego samego elementu iframe?

Alternatywne podejście tworzy tylko element iframe i ładuje zawartość z obrazami - działa zgodnie z oczekiwaniami. Nie ma sprawy.

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript"> 
function createIframe(){ 
    var f = document.getElementsByTagName('body') [0].appendChild(document.createElement('iframe')); 
    f.contentWindow.document.write('<img src="http://www.funimage.org/uploads/posts/2013-02/1361892989_1_14.jpg" />'); 
} 
</script> 
</head> 
<body onload="createIframe()"> 

</body> 
</html> 
13

Upewnij się, że to zadzwonisz.contentWindow.document.close(); po napisaniu do elementu iframe.

+1

Inna odpowiedź nie zadziałała dla mnie, podczas gdy ta miała miejsce. Twoje zdrowie! – Campbeln

+1

To załatwiło sprawę! –

Powiązane problemy