(1) Mi URL actual de ejemplo junto con los parámetros es ---- www.example.com?fname=John&femail=john123@example.com
(2) A través de html / JavaScript, quiero verificar el parámetro de URL actual si contiene datos en fname
(3a) A continuación, si no hay ningún parámetro de URL presente, redirija a "www.example.com/error-page" o (3b) si el parámetro fname tiene algunos datos (no es necesario validar los datos), es decir, el parámetro fname no está vacío, entonces debe continuar con la ejecución de la página actual.
Intenté lo siguiente con éxito:
<!doctype html> <html> <head> <body> <div> <p id ="dd"></p> </div> <meta charset="UTF-8"/> <script type="text/javascript"> var iid=document.getElementById("dd"); var getURL=window.location.href; var theString = window.location.href; var theWord = "fname"; var theWordExp = /fname/g; if (theString.search(theWordExp) == -1) { window.location.href= ('www.example.com/error-page'); }; </script> </body> </head> </html>
Explicación:
La función getQueryParam se explica aquí ¿Cómo obtener los parámetros de solicitud "GET" en JavaScript?
básicamente es casi lo mismo que su enfoque usando la ubicación href para analizar los parámetros
Tenga en cuenta que tiene muchas otras opciones para implementar, verifique la compatibilidad del navegador, el comportamiento de la redirección también se puede cambiar para reemplazar la última página del historial para que el usuario no pueda volver a la URL anterior que arroja el error usando el método window.location.replace
const getQueryParam = (name) => { if (name = (new RegExp('[?&]' + encodeURIComponent(name) + '=([^&]*)')).exec(location.search)) return decodeURIComponent(name[1]); } let fnameParam = getQueryParam("fname"); if (!fnameParam) { window.location = "http://www.example.com/error-page"; }; <!doctype html> <html> <head> <body> <div> <p id="dd"></p> </div> </body> </head> </html>