[JS] Detecteren of plaatje geladen is

Pagina: 1
Acties:

  • Nazgul
  • Registratie: Februari 2000
  • Laatst online: 11-10-2022

Nazgul

Digital Pizza Crew

Topicstarter
Ik heb een website die gebruik maakt van plaatjes die op een andere server staan. Als deze om de een of andere reden niet geladen kunnen worden, wil ik ze verbergen voor de gebruiker.

Om dit voor elkaar te krijgen heb ik het onderstaande stukje code in elkaar gezet. Deze code werkt prima in IE, maar doet raar in Firefox. In Firefox komt de alert altijd terug met 'true', ook al geef ik een niet bestaande URL mee.

Ik heb op Google en GoT gezocht, maar ik kan niets vinden wat dit verklaard (of een alternatief biedt)
Kan iemand hier het vreemde gedrag van Firefox verklaren en/of aangeven welke (ongetwijfeld zeer domme) fout ik heb gemaakt?

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<html>
  <head>
    <script type="text/javascript">
      function hideImageOnError()
      {
        alert(document.getElementById('Portrait').complete);
        if(!document.getElementById('Portrait').complete)
        {
          document.getElementById('imageCell').style.display="none"; 
        }
      }
    </script>
  </head>
  <body>
    <div id="imageCell">
      This is the image:
      [img]"SomeURL"[/img]
      <script type="text/javascript">
        setTimeout('hideImageOnError()', 2000);
      </script>
    </div>
  </body>
</html>

No trees were killed in the sending of this message. However a large number of electrons were terribly inconvenienced.


Verwijderd

Kan je niet de afbeelding standaard verbergen en onload hem laten zien? Als de afbeelding niet bestaat wordt de onload volgens mij niet aanroepen...

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 16:00

crisp

Devver

Pixelated

of de onerror event handler gebruiken:
HTML:
1
<img src="foo.gif" onerror="this.style.display='none'" />

Intentionally left blank


  • Nazgul
  • Registratie: Februari 2000
  • Laatst online: 11-10-2022

Nazgul

Digital Pizza Crew

Topicstarter
Ik zat blijkbaar dus weer veel te moeilijk te denken.
Die onerror event handler is eigenlijk precies wat ik zoek en het werkt perfect.
Bedankt!

No trees were killed in the sending of this message. However a large number of electrons were terribly inconvenienced.