Tengo un problema, necesito una función/programa cuando llega a una pantalla específica, vuelve a colocar la otra ventana, pero cuando abro la ventana, se vuelve a cargar una y otra vez. Estoy usando el método window.open() para abrir otro enlace, pero si conoce otra solución mejor, estoy listo para discutirla.
function redirect() { let deviceWidth = document.documentElement.clientWidth; if ((deviceWidth > 320) && (deviceWidth < 720 )) { mobile(); } else if ((deviceWidth > 721) && (deviceWidth < 1199)) { tablet(); } else if (deviceWidth > 1200) { desktop(); } else { console.log("something wrong"); } function mobile() { // window.location.replace("./mobile.html"); let win = window.open('./mobile.html',"_self","",true) win.focus(); console.log('mobile'); } function tablet() { // window.location.replace("./tablet.html"); let win = window.open('tablet.html',"_self","",true) win.focus() console.log('tablet'); } function desktop() { // window.location.replace("./index.html"); let win = window.open('index.html',"_self","",true) win.focus(); console.log('desktop'); } } redirect();Mi primer pensamiento sería verificar si estas funciones también existen en la página que se carga una y otra vez. Si es así, elimine su llamada a redirección () en las páginas móvil, tableta e index.html. Esto haría que se llamara a redirect() de forma recursiva.
Si necesita mantener la función redirect() en su lugar, es muy probable que necesite tener en cuenta algunas declaraciones if. Por ejemplo, puede capturar el encabezado de referencia una vez que haya redirigido, y si es de alguna de esas páginas, puede interrumpir el bucle.
Tengo la respuesta. El problema era que estaba llamando a la función para abrir un nuevo archivo html, incluso si mi ventana ya abrió ese archivo html, lo que hace que vuelva a abrirse. por ejemplo: si actualmente estoy en mobile.html, estaba cometiendo un error al llamarlo aunque esté abierto.
windown.opein("mobile.html")lo que lo hace recursivo.