Mam obraz na stronie HTML:
<img src="smiley.gif" alt="Smiley face" width="32" height="32" />
Jeśli obraz nie zostanie znaleziony na serwerze, pokazuje brzydki pusty kwadrat.
Chcę, aby jeśli obraz nie został znaleziony, nie wyświetlił niczego lub innego domyślnego obrazu, o którym wiem, że znajduje się na serwerze.
Jak można to zrobić?
Odpowiedzi:
Najlepszy sposób na rozwiązanie problemu:
onerror
to dla ciebie dobra rzecz :)Po prostu zmień nazwę pliku obrazu i spróbuj sam.
źródło
if (this.src != 'Default.jpg')
this.onerror=null;
jak podano poniżej przez @Sudarshan.Cóż, możesz tego spróbować.
to działało dla mnie. daj mi znać o sobie.
źródło
Ok, ale lubię używać tego sposobu, aby za każdym razem, gdy oryginalny obraz nie był dostępny, można załadować domyślny obraz, który może być Twoim ulubionym uśmieszkiem lub obrazem z napisem Przepraszamy! Niedostępne, ale w przypadku, gdy brakuje obu obrazów, możesz użyć tekstu do wyświetlenia. gdzie możesz wtedy też się uśmiechnąć. spójrz na prawie każdy przypadek.
źródło
<?=base_url()?>
? Dlaczego zaskakująco dodajesz kod po stronie serwera i oparty na strukturze?Tutaj Sprawdź poniższy fragment kodu, w którym brakuje mi nazwy obrazu. Tak więc tylko z tego powodu pokazuje alternatywny obraz jako obraz nie znaleziony (404.svg).
źródło
Zwykłym sposobem na obsłużenie tego scenariusza jest ustawienie
alt
znacznika na coś znaczącego.Jeśli zamiast tego chcesz uzyskać obraz domyślny, sugeruję użycie technologii po stronie serwera do wyświetlania obrazów, o nazwie przy użyciu formatu podobnego do:
W
ImageHandler.aspx
kodzie wyłap wszelkie błędy związane z nieodnalezieniem pliku i wyświetldefault.jpg
zamiast tego swój plik .źródło
Możesz wyświetlić tekst alternatywny, dodając
alt
:źródło
Dodałem nadrzędny element div dookoła obrazu i użyłem następującego modułu obsługi zdarzeń onerror, aby ukryć oryginalny obraz, ponieważ w IE nadal był brzydki obraz-nie znaleziono obrazu wyświetlany po użyciu atrybutu alt:
źródło
Alternatywnie, jeśli obraz nie istnieje - w ogóle nic nie pokazuj. (czego szukałem)
Możesz zamienić funkcję z odpowiedzi Robby'ego Shawa w atrybucie „onerror” na „this.remove ()”.
źródło
Spróbuj użyć
border=0
wimg
tagu, aby brzydki kwadrat zniknął.<img src="someimage.png" border="0" alt="some alternate text" />
źródło
Chciałem ukryć miejsce zajmowane przez
<img>
tag, więc to zadziałało<img src = "source.jpg" alt = "" >
źródło
Jeśli chcesz mieć alternatywny obraz zamiast tekstu, możesz równie dobrze użyć php:
źródło
prosty sposób na rozwiązanie tego problemu, wystarczy dodać obraz tła.
źródło
wypróbuj PHP
źródło
dla mnie działa tak, że jeśli nie chcesz używać atrybutu alt, jeśli obraz się zepsuje, możesz użyć tego fragmentu kodu i odpowiednio ustawić.
źródło
Ten pracował dla mnie. używając srcset. Właśnie się o tym dowiedziałem, więc nie wiem, czy przeglądarki go obsługują, ale zadziałało. Spróbuj, a później daj mi swoją opinię.
źródło
Rozwiązanie - usunąłem elementy wysokości i szerokości z img, a tekst alt działał.
DO
Dziękuję wam wszystkim.
źródło