Mam element iframe, który ładuje witrynę innej firmy, która ładuje się bardzo wolno.
Czy istnieje sposób, w jaki mogę wyświetlić komunikat o ładowaniu, podczas gdy element iframe ładuje się, użytkownik nie widzi dużej pustej przestrzeni?
PS. Pamiętaj, że element iframe jest przeznaczony dla witryny internetowej innej firmy, więc nie mogę niczego modyfikować / wstrzykiwać na ich stronie.
javascript
jquery
iframe
Jakub
źródło
źródło
Odpowiedzi:
Zrobiłem następujące podejście CSS:
źródło
Myślę, że ten kod pomoże:
JS:
HTML:
CSS:
źródło
#loadingMessage
podczasload
pożarów, ale dlaczego też to ukrywaszready
? Czy to nie za wcześnie?addEventListener
i wykorzystywaniequerySelector
+style
s nieruchomość :-). Oprócz tego autor pytania oznaczył jakojquery
. Nie możesz dowiedzieć się, dlaczego otrzymałeś wiadomość? :-)Jeśli jest to tylko symbol zastępczy, który próbujesz osiągnąć: szalonym podejściem jest wstawienie tekstu jako tła SVG. Pozwala na pewną elastyczność, az tego, co przeczytałem, obsługa przeglądarek powinna być całkiem przyzwoita (chociaż jej nie testowałem):
html:
css:
Co możesz zmienić?
Wewnątrz wartości tła:
rozmiar czcionki: poszukaj czcionki font-size = "" i zmień wartość na dowolną
kolor czcionki: szukaj wypełnienia = „” . Nie zapomnij zamienić znaku # na% 23, jeśli używasz szesnastkowej notacji kolorów. % 23 oznacza znak # w kodowaniu adresu URL, który jest niezbędny, aby ciąg svg mógł zostać przeanalizowany w programie FireFox.
rodzina czcionek: szukaj font-family = "" pamiętaj, aby pominąć pojedyncze cudzysłowy, jeśli masz czcionkę składającą się z wielu słów (np. \ 'Lucida Grande \')
tekst: poszukaj wartości elementu elementu tekstowego w miejscu, w którym znajduje się ciąg PLACEHOLDER . Możesz zamienić ciąg PLACEHOLDER na wszystko, co jest zgodne z adresem URL (znaki specjalne należy przekonwertować na notację procentową)
Przykład na skrzypcach
Plusy:
Cons:
Poleciłbym to tylko wtedy, gdy jest to absolutnie konieczne, aby pokazać tekst jako symbol zastępczy w ramce iframe, która wymaga trochę elastyczności (wiele języków, ...). Poświęć chwilę i zastanów się: czy to wszystko jest naprawdę konieczne? Gdybym miał wybór, wybrałbym metodę @ Christiny
źródło
źródło
Oto szybkie rozwiązanie w większości przypadków:
CSS:
Jeśli chcesz, możesz użyć animowanego ładującego się pliku GIF,
HTML:
Korzystając ze zdarzenia onload, możesz usunąć obraz ładowania po załadowaniu strony źródłowej wewnątrz elementu iframe.
Jeśli nie używasz jQuery, po prostu umieść id w div i zamień tę część kodu:
przez coś takiego:
Wszystkiego najlepszego!
źródło
Tak, możesz użyć przezroczystego div umieszczonego nad obszarem iframe, z gifem wczytującym jako jedynym tłem.
Następnie możesz dołączyć
onload
zdarzenie do elementu iframe:źródło
Postępowałem zgodnie z następującym podejściem
Najpierw dodaj element div dla rodzeństwa
i wtedy, gdy element iframe zakończy ładowanie
źródło
źródło
Możesz użyć jak poniżej
źródło