2017-01-31 3 views

Antwort

0

Sie können es auf diese Weise tun

<img src="image.png" onerror="imgError(this);"/> 

jetzt eine Funktion auf dieser wie aufrufen können,

function imgError(image) { 
image.onerror = ""; 
image.src = "/images/noimage.gif"; 
return true;} 
+0

Sorry, aber, dass auch für alle Fehler funktioniert, wie kann ich zwischen ihnen unterscheiden? Mein Bild wirft 2 Fehler, "Verweigert Laden von" und "ERR_FAILED", ich brauche die Webseite, um verschiedene Dinge für jeden Fehler zu tun. –

+0

was bekommen Sie (Bild) Parameter? –

+0

Ich bekomme das ganze Dokument, ich schätze, weil ich das Bild in einem Javascript erstellen. –

0

Es ist nicht posible, aber in der Regel das Problem ist so etwas wie dieses: "Fehler 404 Ressource gefunden" oder "Fehler beim Laden der Ressource: net :: ERR_FILE_NOT_FOUND".

Aber Sie können Ajax-Request mit Typ-GET und fangen den Fehler machen.


 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<script> 
 
function CheckImageError(img){ 
 
    \t \t var urlimg = img.attributes.src.ownerElement.currentSrc ; 
 
    \t \t $.ajax({ 
 
    \t \t \t type:"GET", 
 
    \t \t \t url:urlimg , 
 
      context: img, 
 
    \t \t \t error:function(requestObject, error, errorThrown){ 
 
    \t \t \t \t // trace console.log or other action 
 
    \t \t \t }, 
 
    \t \t \t complete: function(){ 
 
    \t \t \t \t //do something 
 
       $(this).css("border","1px solid red"); 
 
    \t \t \t } 
 
    \t \t }) 
 
    \t } 
 
</script> 
 

 
<img onerror="CheckImageError(this)" src="image.gif">

können Sie XMLHttpRequest überprüfen Objekteigenschaften

enter image description here

+0

Okay, ich versuche deine Lösung. Warum gibt mir currentSrc ""? img.attributes.src.ownerElement gibt mir das img-Objekt mit seinem src, aber currentSrc verwandelt es in "". –

+0

dann wird Ihre AJAX-Anfrage Fehlerrückruf ausführen;) –

+0

Irgendwie hat es noch vollständigen Rückruf ausgeführt. Ich habe versucht, ownerElement.currentSrc zu löschen und dann führte es einen Fehler aus, aber errorThrown war leer, irgendwelche Ideen? –

Verwandte Themen