Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/08/2011, 05:37
Avatar de Imrishale
Imrishale
 
Fecha de Ingreso: agosto-2011
Ubicación: Madrid
Mensajes: 3
Antigüedad: 12 años, 9 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.