Foros del Web » Programando para Internet » Javascript »

Cómo cambiar el nombre de archivo js que continene las funciones dentr de una función

Estas en el tema de Cómo cambiar el nombre de archivo js que continene las funciones dentr de una función en el foro de Javascript en Foros del Web. Hola a todos, a ver si alguien encuentra solución a esto que me estoy volviendo loco... Típico doc. html, cuya cabecera tiene las rutas de ...
  #1 (permalink)  
Antiguo 05/01/2009, 12:52
 
Fecha de Ingreso: octubre-2006
Mensajes: 13
Antigüedad: 17 años, 6 meses
Puntos: 0
Cómo cambiar el nombre de archivo js que continene las funciones dentr de una función

Hola a todos, a ver si alguien encuentra solución a esto que me estoy volviendo loco...

Típico doc. html, cuya cabecera tiene las rutas de los javascript, tal como:
<script language="JavaScript" src ="traffic.js"></script>
<script language="JavaScript" src ="cams_es.js"></script>
<script language="JavaScript" src ="defaultlocation.js"></script>

supongamos ahora que tengo otros archivos *.js cuya ruta no deseo incluir en la cabecera del html, pero que tienen funciones que serán llamadas desde alguno de los js mencionados.

Pongamos por caso que una de las funciones dentro de traffic.js es (el contenido no es relevante):

// ***************** Set country in select ************************;
function fn_country()
{
for(i=0;i<=500;i++)
{
v_nombre_country=eval("_canal_["+i+"]");
if (v_nombre_country.length==0) break;
document.formcanal._channel.length = i+1
document.formcanal._channel.options[i].value=i;
document.formcanal._channel.options[i].text=v_nombre_country;
}
fn_city=eval("fn_"+_nameciudad);
fn_city();
document.formsource._source.value = "Radio";
document.formcanal._channel.focus();
document.formcanal._channel.selectedIndex = 0;
return;
}

como veis esta función llama a otra función que aquí se llama fn_city(), y cuyo valor real cambia en función de operaciones anteriores. Por diversos motivos (cientos de archivos) no deseo incluir su ruta dentro del doc html, ya que fn_city podría ser fn_madrid, fn_barcelona, fn_valencia, fn_londres, etc. en función de distintas selecciones que haga el usuario.

Mipregunta es: ¿es posible dentro una función llamar a otra especificando el nombre de archivo *.js que la contiene sin tener que haberlo publicado previamente en la etiqueta del html? Es decir algo parecido a sustituir en el código del ejemplo anterior fn_city() por:

espana.js/fn_city()
uk.js/fn_city(), etc...

Gracias
Antonio
  #2 (permalink)  
Antiguo 05/01/2009, 13:06
 
Fecha de Ingreso: enero-2008
Mensajes: 53
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Cómo cambiar el nombre de archivo js que continene las funciones dentr de

Buenas.

Hasta donde yo sé no se puede directamente con javascript. Ya que esos archivos externos (en este caso, los .js) existen en el servidor, y no en el cliente, que es donde se ejecuta Javascript.

Tal vez puedas lograr algo por medio de AJAX, que llames al archivo .js que necesitas cuando lo necesitas, y luego ejecutar el código. Es lo más cercano a lo que quieres lograr que se me ocurre.

Saludos
  #3 (permalink)  
Antiguo 05/01/2009, 13:13
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: Cómo cambiar el nombre de archivo js que continene las funciones dentr de

Mi pregunta es la siguiente, si tienes cientos de funciones, porque no lo metes en un solo archivo y ese lo incluyes?, no necesitas tener un archivo js por cada función.

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #4 (permalink)  
Antiguo 08/01/2009, 08:10
 
Fecha de Ingreso: octubre-2006
Mensajes: 13
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Cómo cambiar el nombre de archivo js que continene las funciones dentr de

vamos a ver...

el problema es que la aplicación entera se ejecuta en modo cliente, es decir directamente en el dico duro del cliente, NO en un servidor. Por este motivo descarto utilizar otro lenguaje tipo php y utilizar bases de datos. Lo único que la aplicación hace en realidad es redirigirse a una url's (de internet) especifica dependiendo del pais, la ciudad seleccionada, y los numerosos links por cada ciudad.

Ahora lo que ocurre es: imaginemos un array con la lista de paises (hasta ahí bien), otro array con la lista de ciudades del pais seleccionado (ya empieza a ser más jodido por la longitud del js que tendría todas las ciudades), y otro array final con todas las descripciones de objetos de esa ciudad (ya no quiero ni imaginarme la longitud del archivo).

Mi idea era que dependiendo del pais seleccionado, me capture datos de un js que podría llamarse pais.js (donde pais puede ser españa, usa., holanda, belgica, etc...), una vez hechos esto, en ese archivo pais.js (que desearía llamar paisselecionado.js (es decir españa´js, holanda.j, etc) , se almacenarian todas las ciudades de ese pais (function madrid(), function barna(), function valencia(), etc.), y finalmente por cada ciudad se almacenan los datos, que podrían llegar a ser hasta 500 lineas.

De ahí que mi idea sea la de crear madrid.js, barna.js, valencia.js, londres.js etc. de tal modo que una vez decidido de que ciudad deseo obtener los datos, estos los almaceno en un select que me permita ir a la url seleccionada.

ese es el motivo por el que me gustaría poder definir el path, ya que una vez decidido el pais, y la ciudad, solo tendria que abrir el archivo js de esa ciudad que contiene los datos, y que como ejemplo podría se madrid.js, pero deberia poder indicar el path y el nombre c:/blablabla/madrid.js, para abrir ese archivo solo cuando vaya a utilizarlo. Es decir en lugar de:

funcion_ciudad // que la buscaria en los js definidos dentro del html bajo la etiqueta <script language="JavaScript" src ="archivo.js"></script>
poder indicar path/funcion_ciudad, donde path (por poner un ejemplo) sería el nombre de archijo js que contiene la función (en este caso los datos) que deseo obtener.

¿Se entiende ahora mejor lo que pretendo, y por que no puedo incluir en un solo js todo?. sería un js de dimensiones descomunales si pretendiera meter todos los paises, todas las ciudades, y todos los campos de cada ciudad.
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 23:11.