2009-08-05 12 views
34

Moja aplikacja ma modalne okno dialogowe z elementem iframe w środku. Napisałem mój kod jQuery tak, że gdy okno dialogowe zostanie otwarte, ustawia odpowiedni atrybut "src" elementu iframe, aby zawartość ładowała się. Jednak podczas opóźnienia między otwarciem okna dialogowego i ładowaniem treści element iframe jest widoczny jako białe pole. Wolałbym, żeby element iframe miał przezroczyste tło.Iframe przezroczyste tło

Próbowałem ustawić allowtransparency = "yes" na iframe. Jakieś pomysły? Dzięki!

Odpowiedz

1

Po prostu załaduj ramkę z ekranu lub ukryj, a następnie wyświetl ją po zakończeniu ładowania. Na początku możesz wyświetlić ikonę ładowania, aby dać użytkownikowi natychmiastową informację zwrotną, którą ładuje.

+0

Ponieważ nie ma niezawodnego sposobu sprawdzania, kiedy element iframe został załadowany. Nawigacja iframe polega na ustawianiu atrybutu "href", a nie na zdalnym ładowaniu. – brianjcohen

45

Użyłem tego stworzenia IFrame poprzez javascript i pracował dla mnie:

// IFrame points to the IFrame element, obviously 
IFrame.src = 'about: blank'; 
IFrame.style.backgroundColor = "transparent"; 
IFrame.frameBorder = "0"; 
IFrame.allowTransparency="true"; 

Nie wiem, czy to ma żadnej różnicy, ale ustawić te właściwości przed dodaniem iframe do DOM. Po dodaniu go do DOM, ustawiam go na prawdziwy URL.

+7

+1: Nie wiedziałem jeszcze o dopuszczalności Przepuszczalność. Dzięki :) –

29
<style type="text/css"> 
body {background:none transparent; 
} 
</style> 

które mogą pracować (jeśli umieścić w iframe) wraz z

<iframe src="stuff.htm" allowtransparency="true"> 
+2

+1 za styl, ponieważ nie mam dostępu do atrybutów iframe. – Warlock

+1

Nie działa dla mnie w Chrome lub Firefox – geotheory

1

Ustaw kolor tła src sobie równych i pozwalają transparencey.

[WITHIN SCR PAGE STYLE] 
<style type="text/css"> 
    body 
    { 
     background:none transparent; 
    } 
</style> 

[IFRAME] 
<iframe src="#" allowtransparency="true">Error, iFrame failed to load.</iframe> 

UWAGA: Kodowanie mojego kodu CSS różni się nieco od tego, jak wszyscy inni.

Powiązane problemy