El Atributo ONABORT

Es un evento JavaScript que se activa cuando un usuario detiene manualmente la carga de un recurso externo (como una imagen, audio o video) antes de que se complete.
El atributo onabort es un evento JavaScript que se activa cuando un usuario detiene manualmente la carga de un recurso externo (como una imagen, audio o video) antes de que se complete. Es útil para manejar interrupciones de carga y realizar acciones personalizadas.
¿Dónde se aplica?
Funciona en elementos que cargan recursos externos
<img><audio><video><object>
Sintaxis básica
<elemento onabort="miFuncion()">
Ejemplo con imagen:
<img
src="imagen-grande.jpg"
onabort="console.log('Carga de imagen cancelada')"
alt="Imagen de ejemplo"
>
Cómo probarlo
Para activar onabort:
En navegadores:
Detén la carga manualmente:
-
Haz clic en el ícono "X" (detener) mientras se carga el recurso
-
Cierra la pestaña durante la carga
Programáticamente:
const img = document.querySelector('img');
img.src = ''; // Cancela la carga
Ejemplo práctico con video
<video
controls
src="video-large.mp4"
onabort="mostrarMensaje()"
>
Tu navegador no soporta video.
</video>
<script>
function mostrarMensaje() {
alert('¡La carga del video fue cancelada!');
}
</script>
Diferencias clave: onabort vs onerror
| Evento | Se dispara cuando... |
|---|---|
onabort |
El usuario detiene activamente la carga |
onerror |
Ocurre un error durante la carga (ej: recurso no encontrado) |
Uso con JavaScript moderno (addEventListener)
Alternativa recomendada para separar HTML y JavaScript:
<img id="miImagen" src="imagen.jpg" alt="Ejemplo">
document.getElementById('miImagen').addEventListener('abort', function(e) {
console.log('Carga abortada:', e.target);
});
Casos de uso comunes
Registro de interrupciones:
function logAbort(event) {
console.warn('Carga interrumpida:', event.target.src);
}
<img src="grafico.png" onabort="logAbort(event)">
Recargar el recurso:
<audio src="audio.mp3" onabort="this.load()" controls >
Mostrar feedback al usuario:
<div id="mensaje"></div>
<video
src="presentacion.mp4"
onabort="document.getElementById('mensaje').textContent = 'Carga interrumpida'"
controls
>
Mejores prácticas
Combina con otros eventos:
<img
src="fondo.jpg"
onload="console.log('Carga exitosa')"
onerror="console.error('Error de carga')"
onabort="console.warn('Carga cancelada')"
>
No abuses del atributo inline:
Prefiere addEventListener para código mantenible
Maneja fallos en el servidor:
Usa onerror para errores técnicos, no onabort
Limitaciones y errores comunes
<!-- MAL: Usar en elementos que no cargan recursos --> <div onabort="..."></div> <!-- No funciona --> <!-- CONFUSIÓN: No usar para detectar errores --> <audio onabort="manejarError()"> <!-- Usa onerror en su lugar --> <!-- OLVIDAR compatibilidad --> <!-- onabort no funciona igual en todos los navegadores para <object> -->
Compatibilidad
-
Soportado en todos los navegadores modernos (Chrome, Firefox, Safari, Edge)
-
Comportamiento variable en:
- Elementos
<object> - Versiones antiguas de Internet Explorer (limitado a imágenes)
- Elementos
Conclusión
El atributo onabort es útil para:
- Detectar interrupciones de carga iniciadas por el usuario
- Ofrecer experiencias interactivas
- Realizar limpieza o reintentos de carga
Recuerda:
- No sustituye al manejo de errores técnicos (
onerror) - Úsalo junto con otros eventos para cobertura completa
- Prioriza
addEventListeneren proyectos grandes
¡Ahora puedes controlar las interrupciones de carga como un profesional!