Durante la progettazione di un sito web, ci troviamo a inserire varie immagini all'interno del layout; immagini che possono essere statiche, dinamiche o modificabili dall'utente. In tutte le varianti disponibili, una cosa rimane costante: la possibilità che l'immagine non esista, non sia disponibile o che il percorso stesso sia errato.
In questi casi la presentazione risulterà inevitabilmente alterata, ma possiamo gestire la situazione con poche righe di JavaScript.
<img src="/mia-immagine.png" onerror="this.remove()" />
Benchè questo metodo permetta di avere sempre un'interfaccia pulita, non ci da modo di notare l'errore: potremmo non accorgerci mai della presenza dell'immagine se questa viene continuamente eliminata dal DOM. Proviamo a porvi rimedio caricando un'immagine di fallback, che permetta di riconoscere l'errore e allo stesso tempo mostrare una UI coerente.
<img src="/mia-immagine.png" onerror="this.onerror=null; this.src='fallback.png'" />
Il settaggio this.onerror=null è necessario per non incorrere in un ciclo infinito, nel caso in cui anche la fallback non sia disponibile. In tal caso non verrà mostrata alcuna immagine, dandoci sempre modo di accorgerci dell'errore.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Eseguire query verso tipi non mappati in Entity Framework Core
Sviluppare un'interfaccia utente in React con Tailwind CSS e Preline UI
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Routing statico e PreRendering in una Blazor Web App
Migliorare l'organizzazione delle risorse con Azure Policy
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Applicare un filtro per recuperare alcune issue di GitHub
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Recuperare l'ultima versione di una release di GitHub
Utilizzare i primary constructor di C# per inizializzare le proprietà