Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

165
Vistas
Problema de sincronización con iframe en Chrome y Edge

el siguiente script se utiliza para cargar en un IFRAME una aplicación web.

 function openCashier(destination) { postIsAnonymous(function (data) { if (data.IsAnonymous) { window.parent.location.replace('<%= ResolveUrl("~/Popup/login") %>'); } else { stateReset('showUserBtn'); WCore.OpenTab('cashier'); $("#cashierPopup").addClass(destination); $("#cashierFrame").attr('src', '<%= ResolveUrl(Routing.GetUrl("Root-TPAutologin")) %>?Destinazione=' + destination); } }); }

En Firefox todo funciona bien, mientras que en Edge y Chrome me sale el error 404. Si trato de cargar el contenido del IFRAME en una sesión separada del navegador, todo funciona. Intenté editar el javascript de la siguiente manera, temiendo un problema de asincronismo:

 function openCashier(destination) { setTimeout(function () { postIsAnonymous(function (data) { if (data.IsAnonymous) { window.parent.location.replace('<%= ResolveUrl("~/Popup/login") %>'); } else { stateReset('showUserBtn'); WCore.OpenTab('cashier'); $("#cashierPopup").addClass(destination); $("#cashierFrame").attr('src', '<%= ResolveUrl(Routing.GetUrl("Root-TPAutologin")) %>?Destinazione=' + destination); } }); }, 1000 * 20); }

Con este truco se soluciona el problema con muy malas actuaciones .

El código PostIsAnonymous es el siguiente:

 function postIsAnonymous(successFunc) { $.ajax({ type: "POST", url: '?checkIsAnonymous=1', cache: false, contentType: "application/x-www-form-urlencoded;charset=ISO-8859-15", processData: false, success: successFunc }); }

¿Tiene alguna sugerencia que darme para resolver el problema de una manera más elegante? Gracias

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Resolví el problema con el siguiente código.

 function openCashier(destination) { var dest = destination; sessionManager.isAnonymous() .then((data) => { if (data.IsAnonymous) { window.parent.location.replace('<%= ResolveUrl("~/Popup/login") %>'); } else { stateReset('showUserBtn'); WCore.OpenTab('cashier'); $("#cashierPopup").addClass(dest); $("#cashierFrame").attr('src', '<%= ResolveUrl(Routing.GetUrl("Root-TPAutologin")) %>?Destinazione=' + dest); } }) .catch((err) => { console.error(err); }); } var sessionManager = { isAnonymous: () => { return new Promise((resolve, reject) => { $.ajax({ type: "POST", url: '?checkIsAnonymous=1', cache: false, contentType: "application/x-www-form-urlencoded;charset=ISO-8859-15", processData: false, success: function (data) { resolve(data); }, error: function (data) { reject(data); } }); }) } }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda