Foros del Web » Programando para Internet » Javascript »

Problema con enlaces en un javascript

Estas en el tema de Problema con enlaces en un javascript en el foro de Javascript en Foros del Web. Saludos a todos. La verdad es que explicar el problemilla que tengo en el título es algo complicado, así que a ver si me puedo ...
  #1 (permalink)  
Antiguo 07/08/2011, 05:37
Avatar de Imrishale  
Fecha de Ingreso: agosto-2011
Ubicación: Madrid
Mensajes: 3
Antigüedad: 12 años, 8 meses
Puntos: 0
Pregunta Problema con enlaces en un javascript

Saludos a todos. La verdad es que explicar el problemilla que tengo en el título es algo complicado, así que a ver si me puedo explicar bien.

Partamos de una página web que se encuentra formada por los siguientes archivos:

index.html
img/
js/encabezado.js
autor/yo.html

El código javascript sirve para crear encabezados aleatorios a partir de cinco imágenes situadas en la carpeta de img.

Código Javascript:
Ver original
  1. function VecImagenes()
  2.    
  3.     {
  4.     n=0;
  5.         this[n++]="img/encabezado01.jpg";
  6.         this[n++]="img/encabezado02.jpg";
  7.         this[n++]="img/encabezado03.jpg";
  8.         this[n++]="img/encabezado04.jpg";
  9.         this[n++]="img/encabezado05.jpg";
  10.         this.N=n;
  11.     }
  12.    
  13.     var Imagenes=new VecImagenes();
  14.     src= Imagenes[ Math.floor(Math.random() * Imagenes.N) ] ;
  15.     document.write("<img src="+src+">");

Dicho código se encuentra enlazado tanto en index.html como en yo.html.

Para el index.html aplico el código:

Código Javascript:
Ver original
  1. <script type="text/javascript" src="js/encabezado.js"></script>

El código se ejecuta sin problemas y me salen mis imágenes. Sin embargo, para el yo.html situado en la carpeta autor, no consigo que me salga.

Lo primero que hago es enlazar el js mediante el siguiente código:

Código Javascript:
Ver original
  1. <script type="text/javascript" src="../js/encabezado.js"></script>

El código se llega a ejecutar, pero me dice que las imágenes no se encuentran en el servidor. Mirando la url de carga, me sale que está intentando enlazar a la dirección:

Código URL:
Ver original
  1. autor/img/encabezado0X.jpg

en vez de ir a:

Código URL:
Ver original
  1. img/encabezado0X.jpg

como antes, por lo que al no encontrarse el archivo allí, pues no se carga.

Pensaba que el flujo de trabajo haría que al ejecutarse el javascript, pues siguiese la dirección indicada, pero no que modificase la ruta según la carpeta en la que esté.

Si modifico el código javascript y le añado el ../ delante de cada enlace de imagen, la cosa funciona, pero se me joroba para el caso del index.html (evidentemente). También si pongo el enlace completo desde el servidor web, funciona, pero me interesa que se pueda ejecutar desde un servidor local (sin estar conectado a internet, vamos), de ahí que use los enlaces parentales.

Así que bueno, me gustaría ver si alguien podría indicarme cómo solucionar este problemilla, ya que me tiene un poco estancado, la verdad.

Un saludo.
  #2 (permalink)  
Antiguo 07/08/2011, 05:56
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Problema con enlaces en un javascript

buenas,
la única solución que tienes es agregarle al inicio la barra diagonal para indicar el directorio raíz del servidor. si lo estas haciendo en local, pues no tienes remedio a menos que muevas tus proyecto al directorio raíz de tu unidad de almacenamiento (disco duro o pendrive). si quieres evitarte tanto rollo con las rutas, mejor instala un servidor http en el sistema para hacer las pruebas localmente.

Código:
// notese como inicia la url;
/path/filename.ext
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 07/08/2011, 07:54
Avatar de Imrishale  
Fecha de Ingreso: agosto-2011
Ubicación: Madrid
Mensajes: 3
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Problema con enlaces en un javascript

Buenas tardes, Zerokilled. Ante todo, gracias por tu respuesta.

Para serte sincero, no entiendo muy bien a qué te refieres.

Si agrego la barra diagonal a los enlaces, me salen del estilo:

Código URL:
Ver original
  1. file:///img/encabezado_0X.jpg

Es decir, que tengo que mantener los enlaces como:

Código Javascript:
Ver original
  1. this[n++]="img/encabezado_0X.jpg";

De todos modos, si deduzco por tu respuesta que parece ser que no es posible poder conseguir que indicando un enlace parental en el código javascript, éste se mantenta constante sin importar en la subcarpeta desde donde llame al código, ¿no?

La verdad es que antes tenía insertado el código javascript directamente en cada archivo HTML, con sus modificaciones de ../ según la subcarpeta en la que me encontraba, pero la cosa me parecía muy guarra y complicada de actualizar si, por ejemplo, me da por ampliar hasta diez las imágenes de la cabecera aleatoria.

Enredando un poco conseguí hacer un enlace de llamada del estilo de los style.css, aunque estos parece que funcionan de manera diferente a los code.js, ya que en los primeros un enlace referente a img siempre lo pilla bien, pero en el javascript me pasa lo antes comentado.

Un saludo.
  #4 (permalink)  
Antiguo 07/08/2011, 08:34
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Problema con enlaces en un javascript

sin hacer un retoque no seria posible. es decir, desde el documento donde no cargan bien los tendrías que agregar algún código adicional para agregarle la instrucción de "ir al directorio padre". pero entonces, tendrias que estar haciendo eso para cada documento que no coincida en el mismo directorio que el script. por eso propuse como solución que instalaras un servidor http, para que no tengas conflicto con las rutas. de lo contrario, tendrias que mover tus archivos a la carpeta raiz del disco duro. si estas en sistema windows, probablemente sea en la ruta C:\. en otros sistemas no tengo idea donde se localiza.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 07/08/2011, 09:02
Avatar de Imrishale  
Fecha de Ingreso: agosto-2011
Ubicación: Madrid
Mensajes: 3
Antigüedad: 12 años, 8 meses
Puntos: 0
De acuerdo Respuesta: Problema con enlaces en un javascript

Hola de nuevo.

Ya entiendo a lo que te referías. Si, una opción sería tenerlo en el directorio raíz, pero quedaría como muy desordenado, de ahí que lo tengo en carpetas (lo de antes era un ejemplo, en la realidad hay montones de subcarpetas y archivos html).

Al final lo que he hecho es crear versiones del archivo javascript para los distintos subniveles, por lo que aunque no sea un único archivo, es más sencillo tener cuatro de ellos y modificarlos para los nuevos añadidos que como antes, que habría que ir en cada página.

Supongo que no es la solución más 'correcta', pero sirve para salir al paso y no da ningún problema, que muchas veces es de lo que se trata.

Muchas gracias por tus consejos. Ah, y trabajo en plataforma Mac. La ruta de la carpeta raíz se suele encontrar en /Usuarios/nombre/Web, aunque como en todo se puede poner donde más te guste.

Etiquetas: Ninguno
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 11:39.