Agregar iframe a DOM y asegurarse de que los contenidos se carguen antes de enviar el formulario
Frecuentes
Visto 469 veces
1
Tengo el siguiente código:
function callIframe(type, cat) {
var send = false;
var axel = Math.random() + "";
var a = axel * 10000000000000;
var iframe = $('<iframe src="http://domain.com/;src=12345678;type=' + type + ';cat=' + cat + ';ord=' + a + '?" width="1" height="1" frameborder="0" ><iframe>');
$('body').append(iframe);
}
y:
$("a").click(function(e){
var $form = $(this).parent();
callIframe("signu903", "hptes318");
$form.get(0).submit();
});
Mi problema es que el formulario se envía antes de que el contenido del iframe esté completamente cargado. Sé que una devolución de llamada solucionaría este problema, pero luego dependo de la carga del iframe para enviar el formulario. Solo estoy buscando o las mejores prácticas en este caso.
Nota: no tengo acceso al código iframe.
Gracias por adelantado,
JN
1 Respuestas
1
Intente usar un setTimeout
de modo que esperará x segundos para que se cargue el iframe, y si no se carga en la cantidad de tiempo asignada, se envía de todos modos.
prueba esta función:
function callIframe(type, cat) {
var send = false;
var axel = Math.random() + "";
var a = axel * 10000000000000;
var iframe = $('<iframe src="http://domain.com/;src=12345678;type=' + type + ';cat=' + cat + ';ord=' + a + '?" width="1" height="1" frameborder="0" ><iframe>');
$('body').append(iframe);
return iframe;
}
y luego este codigo
$("a").click(function(e) {
var $form = $(this).parent();
var iframe = callIframe("signu903", "hptes318");
iframe.load($form.get(0).submit);
setTimeout($form.get(0).submit,5000);
});
Si el iframe tarda más de 5 segundos en cargarse, el formulario se envía de todos modos.
es posible que deba agregar más lógica para evitar que el envío se realice dos veces.
contestado el 22 de mayo de 12 a las 21:05
Gracias @Kevin B. Este es exactamente el tipo de solución que estaba buscando/pensando. Esto parece que asegurará que el formulario se envíe en cualquier caso. - Jeffreynolte
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas javascript jquery iframe or haz tu propia pregunta.
Creo que te estás contradiciendo. Desea asegurarse de que el formulario no se envíe hasta que se cargue el iframe, pero no desea confiar en la carga del iframe. - Kevin B
@KevinB Estoy buscando una forma segura de enviar el formulario, incluso si el iframe no se carga. La aplicación no depende del iframe para ejecutarse. - jeffreynolte