Detectar error 404, con javascript

Si, utilizando javascript, cargo en una ventana un documento, pero se produce un error de navegador (por ejemplo la url que deseo cargar esta dispponible) ¿Puedo manejar esta circunstancia de algún modo?.

2 Respuestas

Respuesta
1
Desgraciadamente no hay forma, a priori, de detectar un error de ese tipo, ya que son errores personalizados desde el servidor y puede redirigirte a otra página o soltarte un código que está en un archivo.
Sí, en cambio, habría forma si tienes acceso a esos archivos, ya que les puedes poner código javascript dentro.
En este segundo caso, debería tener dos frames, uno de ellos oculto y con una página con código javascript al que llamarán las páginas de error que devuelva el servidor.
Si estás en este caso me lo dices y entramos un poco más en detalle.
Respuesta

¿Es para una web concreta? En tal caso podrías hacerlo observando el DOM. No tendrías problemas mientras la web no cambie el diseño de su página 404. En caso de cambiar su diseño, dependería de la rutina en javascript que se encarga de revisar el DOM. Si revisa algo que no esté tras el cambio... no detectara la página 404.

En concreto los métodos que necesitarías serian:

document.querySelector / document.querySelectorAll

Hay otros métodos pero yo prefiero este porque además te permite usar CSS-Selectors para dar con los elementos del DOM los cuales facilitan mucho el trabajo de localizar los elementos. Pueden parecer complicados al principio, pero una vez que uno se acostumbra es casi como coser y cantar... y facilita mucho, ya que los puedes localizar basándote en sus descendientes, sus adyacentes, las propiedades que tengan o que no tengan, con un valor concreto, o sin él, etc.

Aqui tienes una guia de CSS-Selectors: https://css-tricks.com/almanac/selectors/ 

Para ponerte un ejemplo: Si quieres los DIV del BODY lo que tienes que hacer es pedir un document. QuerySelectorAll("body > DIV") y te estaría devolviendo un HTMLCollection al que se la trata casi como si fuera un Array. Si en vez de usar querySelectorAll usas querySelector, te devolvería solo el primero de la colección.

El ">" indica que quieres los DIV que son descendientes DIRECTOS del BODY (osea hijos si, nietos y sucesivos no).

Tras tener referenciados los elementos que vas a revisar tendrías que acceder a sus propiedades y puede que su textContent.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas