JQuery - Click en un iframe

 
Vista:
sin imagen de perfil

Click en un iframe

Publicado por alvaro (2 intervenciones) el 15/03/2015 07:54:00
A ver si alguien me puede ayudar. Tengo una página en la que en un iframe tengo un calculador de otra web (aquí lo podéis ver http://yccseguros.com/tarifsalud.html). Lo que necesito es poder poner un botón en mi página y que al hacer click sobre ese botón se actúe sobre el botón "Calcula tu presupuesto" del iframe.

He visto ejemplos en Javascript y Jquery pero no entiendo muy bien como funciona. Decir que no soy un gran experto y no sé PHP.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Manuel

Click en un iframe

Publicado por Manuel (1 intervención) el 15/03/2015 11:37:43
Es que aunque no es difícil, tampoco es que sea lo más fácil del mundo.

Lo primero es acceder al contenido del iframe con JavaScript (la parte fácil) y se hace de forma similar a esta:

1
2
var eliFrame=window.frames[<nombre_del_iframe>];
 eliFrame.document.forms[<nombre_del formulario contenido en el iframe>].elements[<nombre_campo>].value=’Un nuevo valor';

Lo segundo, en tu caso no quieres cambiar un valor de dentro de ese formulario, sino activar el evento unClick de un botón (esta es la parte algo más farragosa):

1º Referenciamos el botón:

1
var elBoton= eliFrame.document.forms[<nombre_del formulario contenido en el iframe>].elements[<nombre_campo>];

2º En internet explorer es sencillo (también funciona en algún otro navegador, por ejemplo en Chrome suele funcionar):

1
elBoton.click();

En otros casi lo mismo también funciona:

1
elBoton.onclick();



En los demás es más complicado y no estoy seguro al 100% que funcione en un iframe (nunca lo he probado):

1
2
3
4
5
//Primero creamos el evento:
var unEventoClick = document.createEvent("MouseEvents");
unEventoClick.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
//lo lanzamos
var cancel=!elBoton.dispatchEvent(unEventoClick);

Pero es muy posible que cuando creas el evento, pues tengas que hacerlo dentro del iframe... eso tendrás que probarlo a ver si así te funciona y sino usar la forma de acceder al iframe y crearlo en el document del iframe en lugar de en el documento del la página contenedora.

3º Es posible que lo que tengas que llamar no sea el evento Click/onClick, sino ejecutar el submit() del formulario, que en ese caso sería lo más fácil.

4º Si estas usando jQuery o Zempto, pues te simplifica mucho, ya que solo tienes que tener el
1
$(elBotonAActivar).click();
y no tienes que preocuparte de que navegador usas y demás (pero como vi que también pusiste la pregunta en el foro de HTML, pues la otra es la completa.

5º En JQuery también tienes trigger() con el que podrás simular más tipos de eventos, además de click (que también podrás simularlo así).

Espero haberte ayudado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Click en un iframe

Publicado por Alvaro (2 intervenciones) el 15/03/2015 23:48:37
Gracias. Probaré y si tengo dudas te preguntaré, porque como decía no soy un experto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar