Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] llamada funcion JS desde html

Estas en el tema de llamada funcion JS desde html en el foro de Javascript en Foros del Web. Buenas, no entiendo muy bien ya el porque y no consigo hacer bien la llamada. Tengo una funcion dar_coordenadas(){ ..... ..... var ruta = 'https://www.google.es/maps/place/' ...
  #1 (permalink)  
Antiguo 02/10/2014, 02:28
 
Fecha de Ingreso: noviembre-2009
Mensajes: 33
Antigüedad: 15 años
Puntos: 0
llamada funcion JS desde html

Buenas, no entiendo muy bien ya el porque y no consigo hacer bien la llamada.

Tengo una funcion dar_coordenadas(){
.....
.....
var ruta = 'https://www.google.es/maps/place/' + RadToDeg (latlon[0]) + ',' + RadToDeg (latlon[1]) ;
return ruta;
}


Y en mi HTML quiero introducirla en el SRC:

<iframe style="border:solid thin grey;" width="300" height="300" src="AQUI" > </iframe>

El problema es que por mas que intento meterle y concatenarlo no puedo

alguna idea?
  #2 (permalink)  
Antiguo 02/10/2014, 06:15
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: llamada funcion JS desde html

Código Javascript:
Ver original
  1. dar_coordenadas(){
  2. .....
  3. .....
  4. var ruta = 'https://www.google.es/maps/place/' + RadToDeg (latlon[0]) + ',' + RadToDeg (latlon[1]) ;
  5. document.getElementById('elIframe').src=ruta;
  6. }


Código HTML:
Ver original
  1. <iframe style="border:solid thin grey;" width="300" height="300" src="" id="elIframe" > </iframe>

Ahora necesitas un evento que ejecute la función, hay muchas opciones

<input name="botBoton" type="button" id="botBoton" onClick="dar_coordenadas()">
Cunado le des click a un botón.

<body onLoad="dar_coordenadas()">
cuando se haya cargado el documento....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 03/10/2014, 04:21
 
Fecha de Ingreso: noviembre-2009
Mensajes: 33
Antigüedad: 15 años
Puntos: 0
Respuesta: llamada funcion JS desde html

Realice tus cambios y creo que estaban perfectos, gracias por refrescarme el uso de DOM.

Tengo este problema, la funcion dar coordenadas no me las devuelve correctamente:

Código Javascript:
Ver original
  1. function dar_coordenadas(){
  2.  
  3.         var latlon = new Array(2);
  4.         var x, y, zone, southhemi;
  5.         //valida  que estén rellenos los campos de coordenadas
  6.         if (isNaN (parseFloat (document.getElementById("gen_inmurb_coordenadas_x").value)) ||
  7.             isNaN (parseInt (document.getElementById("gen_inmurb_coordenadas_y").value))) {
  8.  
  9.             } else {
  10.                 x = parseFloat (document.getElementById("gen_inmurb_coordenadas_x").value);
  11.                 y = parseFloat (document.getElementById("gen_inmurb_coordenadas_y").value);
  12.                 zone = parseFloat ("30");
  13.                 southhemi = false;
  14.                
  15.                 UTMXYToLatLon (x, y, zone, southhemi, latlon);
  16.                 //abre google maps con la ubicación de las coordenadas
  17.                 var ruta = 'https://www.google.es/maps/place/' + RadToDeg (latlon[0]) + ',' + RadToDeg (latlon[1]) ;
  18.  
  19.                 var frame = ' <iframe style="border:solid thin grey;" width="300" height="300" src="'+ruta+'" > </iframe>' ;
  20.                 document.getElementById('elIframe').src=ruta;
  21.      
  22.         }
  23.     }

Al entrar en la validacion, no pasa y sale.

Y creo que los datos se recogen bien de este html.

Código HTML:
Ver original
  1. <input class="texto" id="gen_inmurb_coordenadas_x" name="gen_inmurb_coordenadas_x" value=""> ,
  2.                 <input class="texto" id="gen_inmurb_coordenadas_y" name="gen_inmurb_coordenadas_y" value="">

Cual puede ser el problema?

Última edición por supernino69; 03/10/2014 a las 04:34
  #4 (permalink)  
Antiguo 03/10/2014, 06:15
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: llamada funcion JS desde html

Código PHP:
Ver original
  1. if (isNaN (parseFloat (document.getElementById("gen_inmurb_coordenadas_x").value)) ||
  2.             isNaN (parseInt (document.getElementById("gen_inmurb_coordenadas_y").value))) {
  3.  
  4.             } else {...

Esto seria muncho mas elegante

Código PHP:
Ver original
  1. if (!isNaN (parseFloat (document.getElementById("gen_inmurb_coordenadas_x").value)) &&
  2.             !isNaN (parseInt (document.getElementById("gen_inmurb_coordenadas_y").value))) {...


Con lo que muestras no se puede saber si en el momento de ejecutar la función los inputs tienen valores o no tienen


Código Javascript:
Ver original
  1. function dar_coordenadas(){
  2.  
  3.         var latlon = new Array(2);
  4.         var x, y, zone, southhemi;
  5.         //valida  que estén rellenos los campos de coordenadas
  6.         alert("Y:"+document.getElementById("gen_inmurb_coordenadas_y").value+"\nX:"+document.getElementById("gen_inmurb_coordenadas_X").value);
  7.         if (!isNaN (parseFloat (document.getElementById("gen_inmurb_coordenadas_x").value)) &&
  8.             !isNaN (parseInt (document.getElementById("gen_inmurb_coordenadas_y").value))) {
  9.                 x = parseFloat (document.getElementById("gen_inmurb_coordenadas_x").value);
  10.                 y = parseFloat (document.getElementById("gen_inmurb_coordenadas_y").value);
  11.                 zone = parseFloat ("30");
  12.                 southhemi = false;
  13.                
  14.                 UTMXYToLatLon (x, y, zone, southhemi, latlon);
  15.                 //abre google maps con la ubicación de las coordenadas
  16.                 var ruta = 'https://www.google.es/maps/place/' + RadToDeg (latlon[0]) + ',' + RadToDeg (latlon[1]) ;
  17.  
  18.                 var frame = ' <iframe style="border:solid thin grey;" width="300" height="300" src="'+ruta+'" > </iframe>' ;
  19.                 document.getElementById('elIframe').src=ruta;
  20.      
  21.         }
  22.     }

Asi sabras si tienen valores....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 03/10/2014 a las 06:21
  #5 (permalink)  
Antiguo 06/10/2014, 01:06
 
Fecha de Ingreso: noviembre-2009
Mensajes: 33
Antigüedad: 15 años
Puntos: 0
Respuesta: llamada funcion JS desde html

Se que tienen valores,porque les muestro en otra zona, y les introduzco correctamente.

Ademas de que si uso la funcion coordenada() para que me habra un boton una ventana con su localizacion lo hace perfectamente.

Código Javascript:
Ver original
  1. function coordenadas(){
  2.         var latlon = new Array(2);
  3.         var x, y, zone, southhemi;
  4.         //valida  que estén rellenos los campos de coordenadas
  5.         if (isNaN (parseFloat (document.getElementById("gen_inmurb_coordenadas_x").value)) ||
  6.             isNaN (parseInt (document.getElementById("gen_inmurb_coordenadas_y").value))) {
  7.             alert ("Debe rellenar ambas coordenadas UTM con números válidos");
  8.             } else {
  9.                 x = parseFloat (document.getElementById("gen_inmurb_coordenadas_x").value);
  10.                 y = parseFloat (document.getElementById("gen_inmurb_coordenadas_y").value);
  11.                 zone = parseFloat ("30");
  12.                 southhemi = false;
  13.                 UTMXYToLatLon (x, y, zone, southhemi, latlon);
  14.                 //abre google maps con la ubicación de las coordenadas
  15.                 window.open('https://www.google.es/maps/place/' + RadToDeg (latlon[0]) + ',' + RadToDeg (latlon[1]),'_blank');
  16.         }
  17.     }

He realizado las modificaciones, pero no me devuelve el alert que introduciste.
En cambio, si pongo el alert("hola"); de primeras sí,luego entrar en la funcion entra.
  #6 (permalink)  
Antiguo 06/10/2014, 02:36
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: llamada funcion JS desde html

Cita:
He realizado las modificaciones, pero no me devuelve el alert que introduciste.
En cambio, si pongo el alert("hola"); de primeras sí,luego entrar en la funcion entra.
Si no se ejecuta el alert tienes el error antes del condicional. Pon mi alert donde has puesto alert("hola") y confirma que los valores XY estan. Y luego modifica la declaración de variables.

Google

Cita:
La declaración var en más variables se debe repetir para cada una, o bien debe efectuarse con una interrupción de línea:

var micarácter,
mivariable;
Código Javascript:
Ver original
  1. var x,
  2.       y,
  3.       zone,
  4.       southhemi;

o

Código Javascript:
Ver original
  1. var x;
  2. var y;
  3. var zone;
  4. var southhemi;

(yo siempre uso la segunda.... no recordaba por que!!!!)
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #7 (permalink)  
Antiguo 06/10/2014, 02:48
 
Fecha de Ingreso: noviembre-2009
Mensajes: 33
Antigüedad: 15 años
Puntos: 0
Respuesta: llamada funcion JS desde html

Ya lo pensé, por ello cambie el nombre de variables y las puse como dijiste:
Código Javascript:
Ver original
  1. alert("hola");
  2.         var latlon1 = new Array(2);
  3.         var a;
  4.         var b;
  5.         var zona;
  6.         var south;
  7.  
  8.         alert("Y:"+document.getElementById("gen_inmurb_coordenadas_y").value+"\nX:"+document.getElementById("gen_inmurb_coordenadas_X").value);

Aun así, sigue dandome algun error.

Puede ser que intente recoger datos que no esten aun puestos y por dar blank falle?

Aun asi, es imposible, puesto que ejecuto primero la carga de los datos de la BD, y deberian estar los datos para poder recogerlos sin problema...
  #8 (permalink)  
Antiguo 06/10/2014, 05:16
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: llamada funcion JS desde html

Código Javascript:
Ver original
  1. alert("Y:"+document.getElementById("gen_inmurb_coordenadas_y").value+"\nX:"+document.getElementById("gen_inmurb_coordenadas_X").value);
  2.             var latlon1 = new Array(2);
  3.             var a;
  4.             var b;
  5.             var zona;
  6.             var south;

La unica manera de saber si estan o no es que te los muestre en un alert.

Por cierto la sintaxis de mi alert es correcta, lo he ejecutado habiendo creado los dos inputs...
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 06/10/2014 a las 05:26
  #9 (permalink)  
Antiguo 06/10/2014, 05:48
 
Fecha de Ingreso: noviembre-2009
Mensajes: 33
Antigüedad: 15 años
Puntos: 0
Respuesta: llamada funcion JS desde html

Vale, corregido una tonteria y funciona la parte de la coordenada, quedaria así:

Código Javascript:
Ver original
  1. function dar_coordenadas(){
  2.        
  3.         var latlon1 = new Array(2);
  4.         var a;
  5.         var b;
  6.         var zona;
  7.         var south;
  8.  
  9.        
  10.         //valida  que estén rellenos los campos de coordenadas
  11.         if (!isNaN (parseFloat (document.getElementById("gen_inmurb_coordenadas_x").value)) &&
  12.             !isNaN (parseInt (document.getElementById("gen_inmurb_coordenadas_y").value))) {
  13.                 a = parseFloat (document.getElementById("gen_inmurb_coordenadas_x").value);
  14.                 b = parseFloat (document.getElementById("gen_inmurb_coordenadas_y").value);
  15.                 zona = parseFloat ("30");
  16.                 south = false;
  17.  
  18.                 UTMXYToLatLon (a, b, zona, south, latlon1);
  19.                 //abre google maps con la ubicación de las coordenadas
  20.                 var ruta = 'https://www.google.es/maps/place/' + a + ',' + b ;
  21.  
  22.                 document.getElementById('elIframe').src=ruta;
  23.            
  24.         }
  25.          
  26.     }

A pesar de ello, no entra el frame en:

Código HTML:
Ver original
  1. <div  class="float-right" >
  2.    
  3.     <div id="mapa">
  4.            <iframe style="border:solid thin grey;" width="300" height="300" src="" id="elIframe" > </iframe>
  5.     </div>
  6.    
  7. </div>

Y se queda así:


En verdad aparecen todos los datos, pero deje solo las coordenadas para que lo veas.
  #10 (permalink)  
Antiguo 06/10/2014, 06:09
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: llamada funcion JS desde html

Código HTML:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <title>Documento sin t&iacute;tulo</title>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  4. </head>
  5. <script language="JavaScript" type="text/JavaScript">
  6. function dar_coordenadas(){
  7.        
  8.         var latlon1 = new Array(2);
  9.         var a;
  10.         var b;
  11.         var zona;
  12.         var south;
  13.  
  14.        
  15.         //valida  que estén rellenos los campos de coordenadas
  16.         if (!isNaN (parseFloat (document.getElementById("gen_inmurb_coordenadas_x").value)) &&
  17.            !isNaN (parseInt (document.getElementById("gen_inmurb_coordenadas_y").value))) {
  18.                a = parseFloat (document.getElementById("gen_inmurb_coordenadas_x").value);
  19.                 b = parseFloat (document.getElementById("gen_inmurb_coordenadas_y").value);
  20.                 zona = parseFloat ("30");
  21.                 south = false;
  22.                        
  23.                 alert("a:"+a+"\nb:"+b+"\nzona:"+zona+"\nsouth:"+south+"\nlatlon1:"+latlon1);
  24.                
  25.                  //No tengo esta funcion por lo que no se si funciona
  26.                 //UTMXYToLatLon (a, b, zona, south, latlon1);
  27.                 //abre google maps con la ubicación de las coordenadas
  28.                 var ruta = 'https://www.google.es/maps/place/' + a + ',' + b ;
  29.                
  30.                  alert(ruta);
  31.                 //Otra ruta
  32.                
  33.                 ruta="https://www.araeslhora.cat/es";
  34.                
  35.                 document.getElementById('elIframe').src=ruta;
  36.            
  37.         }
  38.          
  39.     }
  40. <input name="gen_inmurb_coordenadas_x" type="text" id="gen_inmurb_coordenadas_x">
  41. <input name="gen_inmurb_coordenadas_y" type="text" id="gen_inmurb_coordenadas_y">
  42. <input name="botDarCoordenadas" type="button" id="botDarCoordenadas" onClick="dar_coordenadas()" value="Ver mapa">
  43. <div  class="float-right" >
  44.    
  45.     <div id="mapa">
  46.            <iframe style="border:solid thin grey;" width="300" height="300" src="" id="elIframe" > </iframe>
  47.     </div>
  48.    
  49. </div></body>
  50. </html>

He creado dos inputs con los nombres que usas y un boton para llamar la función, tambien he intercalado alerts para que se vea con que información trabaja la función, he comentado la función UTMXYToLatLon () para que no intente ejecutarla, yo no la tengo. Hasta aquí no puedo hacer más puesto que no se si los datos son los que deben ser.

Efectivamente el iframe no se carga con la url que se construye con la función pero si lo hace con otras url.

Estas seguro que google permite cargar en un iframe sus mapas con la url construida como lo estas haciendo?

Es decir

Código HTML:
Ver original
  1. <div  class="float-right" >
  2.    
  3.     <div id="mapa">
  4.            <iframe style="border:solid thin grey;" width="300" height="300" src="https://www.google.es/maps/place/xxxxx,yyyyy" id="elIframe" > </iframe>
  5.     </div>
  6.    
  7. </div>

si subtituimos xxxxx e yyyyyy por coordenadas reales, se carga el iframe?
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #11 (permalink)  
Antiguo 06/10/2014, 06:20
 
Fecha de Ingreso: noviembre-2009
Mensajes: 33
Antigüedad: 15 años
Puntos: 0
Respuesta: llamada funcion JS desde html


No carga...

Para enviarlo a una nueva pantalla funciona perfectamente, pero en iframe no.

Sabes otra forma de poder introducirlo?
  #12 (permalink)  
Antiguo 06/10/2014, 06:23
Avatar de Tecna  
Fecha de Ingreso: enero-2010
Mensajes: 291
Antigüedad: 14 años, 10 meses
Puntos: 45
Respuesta: llamada funcion JS desde html

Buenas.

Cita:
"La declaración var en más variables se debe repetir para cada una, o bien debe efectuarse con una interrupción de línea:"

La cita anterior no es correcta, se pueden declarar e inicializar múltiples variables con la misma palabra var separándolas con comas.
__________________
tecnawebs.es Diseño web y programación - Modelado 3D.

google plus
  #13 (permalink)  
Antiguo 06/10/2014, 06:52
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: llamada funcion JS desde html

Cita:
Iniciado por Tecna Ver Mensaje
Buenas.

Cita:
"La declaración var en más variables se debe repetir para cada una, o bien debe efectuarse con una interrupción de línea:"

La cita anterior no es correcta, se pueden declarar e inicializar múltiples variables con la misma palabra var separándolas con comas.

Cierto.
Código HTML:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <title>Documento sin t&iacute;tulo</title>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  4. </head>
  5. <script language="JavaScript" type="text/JavaScript">
  6. function dar_coordenadas(){
  7.        
  8.         var latlon1 = new Array(2);
  9.         var a, b, zona, south;
  10.  
  11.        
  12.         //valida  que estén rellenos los campos de coordenadas
  13.         if (!isNaN (parseFloat (document.getElementById("gen_inmurb_coordenadas_x").value)) &&
  14.            !isNaN (parseInt (document.getElementById("gen_inmurb_coordenadas_y").value))) {
  15.                a = parseFloat (document.getElementById("gen_inmurb_coordenadas_x").value);
  16.                 b = parseFloat (document.getElementById("gen_inmurb_coordenadas_y").value);
  17.                 zona = parseFloat ("30");
  18.                 south = false;
  19.                        
  20.                 alert("a:"+a+"\nb:"+b+"\nzona:"+zona+"\nsouth:"+south+"\nlatlon1:"+latlon1);
  21.                
  22.                  //No tengo esta funcion por lo que no se si funciona
  23.                 //UTMXYToLatLon (a, b, zona, south, latlon1);
  24.                 //abre google maps con la ubicación de las coordenadas
  25.                 var ruta = 'https://www.google.es/maps/place/' + a + ',' + b ;
  26.                
  27.                  alert(ruta);
  28.                 //Otra ruta
  29.                
  30.                
  31.                 document.getElementById('elIframe').src=ruta;
  32.            
  33.         }
  34.          
  35.     }
  36. <input name="gen_inmurb_coordenadas_x" type="text" id="gen_inmurb_coordenadas_x">
  37. <input name="gen_inmurb_coordenadas_y" type="text" id="gen_inmurb_coordenadas_y">
  38. <input name="botDarCoordenadas" type="button" id="botDarCoordenadas" onClick="dar_coordenadas()" value="Ver mapa">
  39. <div  class="float-right" >
  40.    
  41.     <div id="mapa">
  42.            <iframe style="border:solid thin grey;" width="300" height="300" src="" id="elIframe" > </iframe>
  43.     </div>
  44.    
  45. </div></body>
  46. </html>
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #14 (permalink)  
Antiguo 07/10/2014, 02:51
 
Fecha de Ingreso: noviembre-2009
Mensajes: 33
Antigüedad: 15 años
Puntos: 0
Respuesta: llamada funcion JS desde html

quimfv , con iframe no me permite abrir la ruta dada que sería "https://www.google.es/maps/place/" + longitud + lat O coordenadas UTM , mientras que al abrir una nueva ventana si que me funciona.

Cual sería la otra forma de integrar una imagen de google maps dado por coordenadas UTM?
  #15 (permalink)  
Antiguo 07/10/2014, 03:59
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: llamada funcion JS desde html

Como sabras la fuente esta aquí

http://www.google.com/intx/es/enterp...FSXHtAodpjkA8w

y más concretamente aquí

https://developers.google.com/maps/d...on/embed/guide


Código HTML:
Ver original
  1.  width="600"
  2.  height="450"
  3.  frameborder="0" style="border:0"
  4.  src="https://www.google.com/maps/embed/v1/place?key=API_KEY
  5.    &q=Space+Needle,Seattle+WA">
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: funcion, html, js, llamada
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:11.