Encontré la siguiente solución Verificando si una URL está rota en Javascript
En la respuesta dice usar
checkLink = async url => (await fetch(url)).okpara comprobar si hay una URL disponible.
Entonces, supongamos que me gustaría mostrar un mensaje en caso de que una URL funcione, así que escribí:
let url = 'https://www.example.com/index.html'; if(checkLink = async url => (await fetch(url)).ok) {alert ("Hello world!");};Desafortunadamente, el código anterior siempre muestra el mensaje de alerta sin importar si la URL está disponible o no. ¿Cómo puedo usar este código para probar si una URL es válida?
Con la definición de función que diste
checkLink = async url => (await fetch(url)).oknormalmente usaría esto de la siguiente manera.
async function doStuff() { let url = 'https://www.example.com/index.html'; let doesLinkWork = await checkLink(url); if (doesLinkWork) { alert("it works"); } else { alert("it doesn't work"); } } y luego llame a doStuff desde la consola o desde otro lugar en su código. (Obviamente, el nombre de la función es solo un ejemplo: ¡debería llamarlo de una manera más apropiada para lo que realmente quiere que haga!)
Si está buscando usar un campo de entrada o algo por el estilo, puede usar checkValidity(). https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/checkValidity
<html> <body> <script> function validation() { const inp = document.getElementById("url"); const p = document.getElementById("text"); if(!inp.checkValidity()){ p.innerText = inp.validationMessage; } } </script> <form> <input id="url" type="url" placeholder="URL Here"> <input type="submit" value="Submit" onclick="validation()"> </form> <p id="text"></p> </body> </html>