En la etiqueta img de asp.net, necesito configurar una imagen gif. Establecí una imagen gif para el src del img y si el gif no existe, necesito configurar un jpg para el img. Pero si el jpg tampoco existe, necesito ocultar el img de la página. Usé el evento onerror de la etiqueta img para esto con la función javascript. Pero a veces dice que la función no se encuentra.
¿Hay alguna manera fácil de hacer esto? Mi necesidad es configurar gif en img y, si el gif no existe, configurar jpg y si jpg tampoco existe, necesito ocultar el img.
lo intenté así
<img src="mygif.gif" onerror="setJpg($(this));"> function setJpg(source) { var file = source[0].src; var jpgFile = file.substr(0, file.lastIndexOf(".")) + ".jpg"; var img = document.createElement('img');// new Image(); img.onload = function () { source[0].src = jpgFile; }; img.onerror = function () { source.parent().hide() }; img.src = jpgFile; }El evento onerror finalmente se recupera después de cambiar el src de la imagen. Por lo tanto, no tiene que crear otro img y puede reanudar el mismo evento. Como establecer un nuevo controlador o verificar el final.
//REM: Note that "img" is an element and not jquery wrapped. function setJpg(img){ console.log('Called onerror'); //REM: If image ends with ".gif" if(img.src.toLowerCase().endsWith('.gif')){ //REM: Change ".gif" to ".jpg", whatever your logic is. //REM: This is going to call onerror again if not found img.src = img.src.replace('.gif', '.jpg'); console.log('Changed src', img.src) } else{ //REM: Remove the event img.onerror = null; //REM: Remove the image or do whatever you want with it img.remove(); console.log('Removed element') } } <img src = 'wayne.gif' onerror = 'setJpg(this)'>