Bildlast erkennen

Lesezeit: 3 Minuten

Bildlast erkennen
Pablo

Ist es möglich zu erkennen, wann ein Bild mit jQuery geladen wurde?

Du kannst den … benutzen .load() Event-Handler, etwa so:

$("#myImg").load(function() {
  alert('I loaded!');
}).attr('src', 'myImage.jpg');

Unbedingt anhängen Vor Festlegen der Quelle, oder das Ereignis wurde möglicherweise ausgelöst, bevor Sie einen Handler angehängt haben, um darauf zu lauschen (z. B. Laden aus dem Cache).

Wenn das so ist nicht machbar (Einstellung der src nach dem Binden), überprüfen Sie, ob es geladen ist, und feuern Sie es selbst ab, wie folgt:

$("#myImg").load(function() {
  alert('I loaded!');
}).each(function() {
  if(this.complete) $(this).load();
});

  • Ist es möglich, dies zu tun: $("#myImg").live("load", function(){ //dance });

    – Erik Escobedo

    21. August 2010 um 14:14 Uhr


  • Bedauerlicherweise, .load() ist seit jQuery v1.8 veraltet

    – SquareCat

    19. Oktober 13 um 23:29 Uhr

  • @CummanderCheckov wurde aufgrund von Mehrdeutigkeiten zwischen dem Ereignishandler und dem Ajax-Inhaltsabruf verworfen. Im obigen Code einfach ersetzen .load( mit .on('load', für äquivalente Funktionalität in 1.7+.

    – Nick Craver

    19. Oktober 13 um 23:52 Uhr

  • Darüber zerbreche ich mir seit Stunden den Kopf. Danke @NickCraver. Wir haben ein Anzeigenbild, das dynamisch von einem Anzeigenserver geladen wird, also keine Kontrolle unsererseits. Ich konnte dies verwenden, um zu testen, ob es richtig geladen wurde, sodass ich JS verwenden konnte, um es horz/vert zu zentrieren.

    – Markus

    13. März 14 um 21:08 Uhr

  • Hallo Nick, wie Cross-Browser-kompatibel ist das? Funktioniert auf IE8, IE9 zuverlässig? Und zweitens, wird der Handler ausgelöst, wenn das Bild sofort aus dem Browser-Cache geladen wird?

    – SexyBeast

    14. Juni 14 um 19:59 Uhr

Bildlast erkennen
Peter Aytai

Es ist genauso einfach, einfaches Javascript zu verwenden:

  // Create new image
var img = new Image();

  // Create var for image source
var imageSrc = "http://example.com/blah.jpg";

  // define what happens once the image is loaded.
img.onload = function() {
    // Stuff to do after image load ( jQuery and all that )
    // Within here you can make use of src=imageSrc, 
    // knowing that it's been loaded.
};

  // Attach the source last. 
  // The onload function will now trigger once it's loaded.
img.src = imageSrc;

  • Dies schlägt fehl, wenn Bilder überprüft werden, die sich bereits im Cache befinden.

    – vsync

    7. April 14 um 17:27 Uhr

Ich habe auch lange darüber recherchiert und festgestellt, dass dieses Plugin dabei wunderbar hilft: https://github.com/desandro/imagesloaded

Es scheint eine Menge Code zu sein, aber … ich habe keinen anderen Weg gefunden, um zu überprüfen, wann ein Bild geladen wurde.

Ganz einfach mit jquery:

$('img').load(function(){
   //do something
});

Wenn es versucht wurde mit:

$('tag')html().promise().done(function(){ 
   //do something
}) ;

aber das wird nicht prüfen, ob das Bild geladen ist. Das Feuer ist erledigt, wenn der Code geladen ist. Andernfalls können Sie überprüfen, ob der Code ausgeführt wurde, dann die Funktion img load auslösen und überprüfen, ob das Bild wirklich geladen ist. Also machen wir eine Kombination aus beidem:

$('tag')html('<img src="'+pic+'" />').promise().done(function(){ 
   $('img').load(function(){
     //do something like show fadein etc...
   });
}) ;

Bildlast erkennen
Roman Kosin

Ich denke, das kann dir ein bisschen helfen:

    $('img').error(function(){
        $(this).attr( src : 'no_img.png');
 })

Also, wenn es geladen ist – wird das Originalbild angezeigt. In anderen – wird ein Bild angezeigt, das eine Tatsache mit einem abgestürzten Bild oder einem 404-HTTP-Header enthält.

.

758680cookie-checkBildlast erkennen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy